当前位置: 首页 > news >正文

北京比较好的网站公司鞍山网站设计制作网站

北京比较好的网站公司,鞍山网站设计制作网站,全国知名品牌策划公司,可做设计任务的网站一、获取高德平台key 【1】基于application包名sha1值在高德控制台获取key值#xff0c;详情参考#xff1a; 获取Key-创建工程-开发指南-Android 地图SDK | 高德地图API 【2】在manifest中声明权限 【3】将拿到的key值在manifest中进行声明 !--允许程序打开网络… 一、获取高德平台key 【1】基于application包名sha1值在高德控制台获取key值详情参考  获取Key-创建工程-开发指南-Android 地图SDK | 高德地图API 【2】在manifest中声明权限 【3】将拿到的key值在manifest中进行声明 !--允许程序打开网络套接字-- uses-permission android:nameandroid.permission.INTERNET / !--允许程序设置内置sd卡的写权限-- uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE / !--允许程序获取网络状态-- uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE / !--允许程序访问WiFi网络信息-- uses-permission android:nameandroid.permission.ACCESS_WIFI_STATE / !--允许程序访问CellID或WiFi热点来获取粗略的位置-- uses-permission android:nameandroid.permission.ACCESS_COARSE_LOCATION / meta-dataandroid:namecom.amap.api.v2.apikeyandroid:valuexxxxxxxxxxxx / 二、集成依赖 在app build.gradle文件中增加高德地图依赖 implementation(com.amap.api:3dmap:9.8.2) 三、显示地图 概述-Android 地图SDK | 高德地图API 在xml文件中声明MapView控件并在class中重写 onCreate 方法此方法必须重写注意生命周期的管理 com.amap.api.maps.MapViewandroid:idid/mapandroid:layout_widthmatch_parentandroid:layout_heightmatch_parent / private var mapView: MapView? nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.test_activity)mapView findViewById(R.id.map)mapView?.onCreate(savedInstanceState) }override fun onResume() {super.onResume()mapView?.onResume() }override fun onPause() {super.onPause()mapView?.onPause() }override fun onDestroy() {super.onDestroy()mapView?.onDestroy() }override fun onSaveInstanceState(outState: Bundle) {super.onSaveInstanceState(outState)mapView?.onSaveInstanceState(outState) } 地图默认中心点为北京天安门 四、高德地图具体使用 以下对于地图的控制使用之前需要拿到AMap对象 map mapView?.map 1、切换城市中心点 private fun moveCenterTo(latLng: LatLng) {val cameraUpdate CameraUpdateFactory.newLatLng(latLng)map?.moveCamera(cameraUpdate) } Android高德地图切换城市中心点展示 2、设置缩放级别 moveCamera(CameraUpdateFactory.zoomTo(14.0f)) 3、绘制marker companion object {private val MARKER1 LatLng(40.02855349893361, 116.3052948784071)private val MARKER2 LatLng(41.093445392798934, 116.11030767409169) }val marker1: MarkerOptions MarkerOptions().apply {position(MARKER1) } val marker2: MarkerOptions MarkerOptions().apply {position(MARKER2) }val list ArrayListMarkerOptions() list.add(marker1) list.add(marker2) map?.addMarkers(list, false) 如下图所示不设置icon默认展示蓝色定位图标。 11 针对marker可以设置的属性 position在地图上标记位置的经纬度值必填参数title点标记的标题snippet点标记的内容draggable点标记是否可拖拽visible点标记是否可见anchor点标记的锚点alpha点的透明度 public final java.util.ArrayListMarker addMarkers(java.util.ArrayListMarkerOptions options, boolean moveToCenter) 在地图上添一组图片标记marker对象并设置是否改变地图状态以至于所有的marker对象都在当前地图可视区域范围内显示。 参数: options - 多个markerOptions对象它们分别定义了对应marker的属性信息。 moveToCenter - 是否改变地图状态默认为false。 返回: 返回一组被添加的marker对象。 4、绘制折线 val latLngList ArrayListLatLng() latLngList.add(MARKER1) latLngList.add(MARKER2) map?.addPolyline(PolylineOptions().addAll(latLngList).width(3f).color(Color.RED) ) 5、轨迹 SmoothMoveMarker(map).apply { setDescriptor(BitmapDescriptorFactory.fromResource(R.drawable.smooth))setPoints(latLngList)setTotalDuration(5)startSmoothMove()} 6、两点之间距离计算 AMapUtils.calculateLineDistance(latLng1,latLng2) 7、切换地图图层 【1】预设模式 mapType AMap.MAP_TYPE_NIGHT 【2】在线自定义模式 val options CustomMapStyleOptions().apply {isEnable truestyleId } map?.setCustomMapStyle(options) 8、手势交互 map?.uiSettings.let {it.isRotateGesturesEnabled falseit.isZoomControlsEnabled falseit.isTiltGesturesEnabled false } 更多设置可参考https://a.amap.com/lbs/static/unzip/Android_Map_Doc/3D/index.html?overview-summary.html 9、地图状态监听 setOnMapLoadedListener(object : AMap.OnMapLoadedListener {override fun onMapLoaded() {Log.e(TAG, onMapLoaded...)}})//自带放大缩小接口setOnCameraChangeListener(object : AMap.OnCameraChangeListener {override fun onCameraChange(p0: CameraPosition?) {//Log.e(TAG, onCameraChange ${p0?.toString()})}override fun onCameraChangeFinish(p0: CameraPosition?) {Log.e(TAG, onCameraChangeFinish ${p0?.toString()})}})//map point点击事件addOnMapClickListener(object : AMap.OnMapClickListener {override fun onMapClick(p0: LatLng?) {Log.e(TAG, onMapClick ${p0?.toString()})}})//地图自带poi点击事件addOnPOIClickListener(object : AMap.OnPOIClickListener {override fun onPOIClick(p0: Poi?) {Log.e(TAG, onPOIClick ${p0?.toString()})}})addOnMarkerClickListener(object : AMap.OnMarkerClickListener {override fun onMarkerClick(p0: Marker?): Boolean {Log.e(TAG, onMarkerClick ${p0?.id})return true}}) 10、截图功能 拿到bitmap对象进行处理 map?.getMapScreenShot(object : AMap.OnMapScreenShotListener {override fun onMapScreenShot(p0: Bitmap?) {TODO(Not yet implemented)}override fun onMapScreenShot(p0: Bitmap?, p1: Int) {TODO(Not yet implemented)}}) 五、代码 ?xml version1.0 encodingutf-8? FrameLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalcom.amap.api.maps.MapViewandroid:idid/mapandroid:layout_widthmatch_parentandroid:layout_heightmatch_parent /LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginTop20dpandroid:gravitycenterandroid:orientationhorizontalTextViewandroid:idid/bjandroid:layout_width60dpandroid:layout_heightwrap_contentandroid:backgrounddrawable/button_bgandroid:gravitycenterandroid:padding10dpandroid:text北京android:textSize18dp /TextViewandroid:idid/gzandroid:layout_width60dpandroid:layout_heightwrap_contentandroid:layout_marginLeft20dpandroid:backgrounddrawable/button_bgandroid:gravitycenterandroid:padding10dpandroid:text广州android:textSize18dp /TextViewandroid:idid/xaandroid:layout_width60dpandroid:layout_heightwrap_contentandroid:layout_marginLeft20dpandroid:backgrounddrawable/button_bgandroid:gravitycenterandroid:padding10dpandroid:text西安android:textSize18dp /ImageViewandroid:idid/shareandroid:layout_width40dpandroid:layout_height40dpandroid:layout_marginLeft20dpandroid:scaleTypefitXYandroid:srcdrawable/screenshot //LinearLayout/FrameLayout package com.example.myapplicationimport android.graphics.Bitmap import android.graphics.Color import android.location.Location import android.os.Bundle import android.util.Log import android.widget.ImageView import android.widget.TextView import androidx.activity.ComponentActivity import com.amap.api.maps.AMap import com.amap.api.maps.CameraUpdateFactory import com.amap.api.maps.MapView import com.amap.api.maps.model.BitmapDescriptorFactory import com.amap.api.maps.model.CameraPosition import com.amap.api.maps.model.LatLng import com.amap.api.maps.model.Marker import com.amap.api.maps.model.MarkerOptions import com.amap.api.maps.model.Poi import com.amap.api.maps.model.PolylineOptions import com.amap.api.maps.utils.overlay.SmoothMoveMarkerclass TestActivity : ComponentActivity() {private var mapView: MapView? nullprivate var map: AMap? nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.test_activity)initMap(savedInstanceState)initView()}private fun initView() {findViewByIdTextView(R.id.bj).setOnClickListener { moveCenterTo(LATLNG_BJ) }findViewByIdTextView(R.id.gz).setOnClickListener { moveCenterTo(LATLNG_GZ) }findViewByIdTextView(R.id.xa).setOnClickListener { moveCenterTo(LATLNG_XA) }findViewByIdImageView(R.id.share).setOnClickListener {map?.getMapScreenShot(object : AMap.OnMapScreenShotListener {override fun onMapScreenShot(p0: Bitmap?) {TODO(Not yet implemented)}override fun onMapScreenShot(p0: Bitmap?, p1: Int) {TODO(Not yet implemented)}})}}private fun initMap(savedInstanceState: Bundle?) {mapView findViewById(R.id.map)mapView?.onCreate(savedInstanceState)mapView?.let {map it.map}map?.apply {uiSettings.let {it.isRotateGesturesEnabled falseit.isZoomControlsEnabled falseit.isTiltGesturesEnabled false}moveCamera(CameraUpdateFactory.zoomTo(8.0f))//自定义图层 // val options CustomMapStyleOptions().apply { // isEnable true // styleId // } // setCustomMapStyle(options)// mapType AMap.MAP_TYPE_NIGHTsetOnMapLoadedListener(object : AMap.OnMapLoadedListener {override fun onMapLoaded() {Log.e(TAG, onMapLoaded...)//AnimatorUtil.obtainLinePointF(mapView, MARKER1, MARKER2) // Handler().postDelayed(object : Runnable{ // override fun run() { // AnimatorUtil.obtainLinePointF(mapView, MARKER2, MARKER3) // } // }, 500)}})//自带放大缩小接口setOnCameraChangeListener(object : AMap.OnCameraChangeListener {override fun onCameraChange(p0: CameraPosition?) {//Log.e(TAG, onCameraChange ${p0?.toString()})}override fun onCameraChangeFinish(p0: CameraPosition?) {Log.e(TAG, onCameraChangeFinish ${p0?.toString()})}})//map point点击事件addOnMapClickListener(object : AMap.OnMapClickListener {override fun onMapClick(p0: LatLng?) {Log.e(TAG, onMapClick ${p0?.toString()})}})//地图自带poi点击事件addOnPOIClickListener(object : AMap.OnPOIClickListener {override fun onPOIClick(p0: Poi?) {Log.e(TAG, onPOIClick ${p0?.toString()})}})addOnMarkerClickListener(object : AMap.OnMarkerClickListener {override fun onMarkerClick(p0: Marker?): Boolean {Log.e(TAG, onMarkerClick ${p0?.id})return true}})setOnMyLocationChangeListener(object : AMap.OnMyLocationChangeListener {override fun onMyLocationChange(p0: Location?) {Log.e(TAG, setOnMyLocationChangeListener ${p0?.toString()})p0?.let {moveCamera(CameraUpdateFactory.newLatLng(LatLng(it.latitude, it.longitude)))}}})//绘制marker点val marker1: MarkerOptions MarkerOptions().apply {position(MARKER1)}val marker2: MarkerOptions MarkerOptions().apply {position(MARKER2)}val list ArrayListMarkerOptions()list.add(marker1)list.add(marker2)addMarkers(list, false)// val builder LatLngBounds.builder().apply { // include(MARKER1) // include(MARKER2) // include(MARKER3) // include(MARKER4) // } // val bounds builder.build() // moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 300))//绘制marker折线val latLngList ArrayListLatLng()latLngList.add(MARKER1)latLngList.add(MARKER2)addPolyline(PolylineOptions().addAll(latLngList).width(3f).color(Color.RED))//轨迹SmoothMoveMarker(map).apply {setDescriptor(BitmapDescriptorFactory.fromResource(R.drawable.smooth))setPoints(latLngList)setTotalDuration(5)startSmoothMove()}}}private fun moveCenterTo(latLng: LatLng) {val cameraUpdate CameraUpdateFactory.newLatLng(latLng)map?.moveCamera(cameraUpdate)}override fun onResume() {super.onResume()mapView?.onResume()}override fun onPause() {super.onPause()mapView?.onPause()}override fun onDestroy() {super.onDestroy()mapView?.onDestroy()}override fun onSaveInstanceState(outState: Bundle) {super.onSaveInstanceState(outState)mapView?.onSaveInstanceState(outState)}companion object {private const val TAG TestActivityprivate val MARKER1 LatLng(40.02855349893361, 116.3052948784071)private val MARKER2 LatLng(41.093445392798934, 116.11030767409169)private val LATLNG_BJ LatLng(39.90508988475248, 116.4083842390264)private val LATLNG_GZ LatLng(23.11523439186301, 113.24706837513949)private val LATLNG_XA LatLng(34.321288624880815, 108.94042782381482)} }
http://www.w-s-a.com/news/44183/

相关文章:

  • 专业深圳网站定制开发企业网站开发 流程
  • 网站建设推广的软文php网站平台
  • 如何做代刷网站长外贸网站个性设计
  • 合同网站开发 设计 后期维护如何搭建海外网络
  • 提供网站建设服务优化大师哪个好
  • 军队营房基础建设网站哦咪咖网站建设
  • fifa17做任务网站app下载免费安装
  • 网站开发用哪些技术seo是什么意思为什么要做seo
  • 网站会动的页面怎么做的与网站建设有关的招标文件
  • 公司网站如何做seowordpress付费资源
  • 福田做商城网站建设哪家公司便宜点WordPress安装子目录
  • 南京建设交易中心网站wordpress 拼车
  • 上海今天发生的重大新闻5条河南网站seo费用
  • 广东深圳最新情况临安网站seo
  • 华为快速建站女人做春梦网站
  • 建外贸网站费用手机排行榜zol
  • 长治网站制作的网站做网站要什么知识条件
  • discuz 做门户网站wordpress怎么添加图片不显示图片
  • 东营网站建设方案范文百度应用搜索
  • 网站 常见推广js代码放wordpress哪里
  • 靖江网站开发徐州住房和城乡建设局网站
  • 南宁网站建设公司如何为老板打造网站赚钱的wordpress optimizer
  • 做微商好还是开网站好网站网络推广
  • 网站建设岗位所需技能泊头网站优化
  • 企业网站建设是什么网络营销岗位介绍
  • 网站做cdn怎么弄昆明网站seo报价
  • 拖拽网站如何建立微网站
  • 网站网站做代理微信群卖房卡南宁建站模板大全
  • 网络公司怎么优化网站百度快速排名技术培训教程
  • 建e室内设计网 周婷站长工具seo综合查询源码