美文网首页
高德地图显示单个窗体和显示多个窗体的方法

高德地图显示单个窗体和显示多个窗体的方法

作者: androidfan | 来源:发表于2019-02-27 14:58 被阅读0次

高德地图是我经常使用过的组件,今天想跟大家讨论下信息窗体的创建与显示的方法,这种就是属于自定的内容了,需要到高德开发者中心查看一些相应的文档


image.png
LatLng latLng = new LatLng(39.906901,116.397972);
final Marker marker = aMap.addMarker(new MarkerOptions().position(latLng).title("北京").snippet("DefaultMarker"));

官方是只有这寥寥数语,个中意味需要开发者仔细研究


image.png

经过我的而不断探索,最终吧还是搞懂了,其实这都是之前做好的,今天总结出来学习(装逼)而已,哈哈

  • 显示单个信息窗体的,支持自定义布局

class BubbleInfoUpActivity : BaseActivity(), LocationSource, AMapLocationListener, AMap.InfoWindowAdapter,
        AMap.OnInfoWindowClickListener, AMap.OnCameraChangeListener {



    //省略若干无用代码




    override fun onLocationChanged(aMapLocation: AMapLocation) {
    }

    override fun getInfoWindow(marker: Marker?): View {
        var infoWindow = LayoutInflater.from(this@BubbleInfoUpActivity).inflate(R.layout.layout_gd_map_distance, null)
        var name = infoWindow.findViewById<TextView>(R.id.gd_distance)
        name.text = "我在这里"
        marker?.isVisible = true
        return infoWindow

    }

    override fun getInfoContents(marker: Marker?): View? {
        return null
    }

    override fun onInfoWindowClick(marker: Marker?) {
        marker?.isVisible = true
        marker?.showInfoWindow()

    }

    override fun activate(onLocationChangedListener: LocationSource.OnLocationChangedListener) {

    }

    override fun deactivate() {

    }

    override fun onCameraChange(cameraPosition: CameraPosition) {

    }

    override fun onCameraChangeFinish(cameraPosition: CameraPosition) {
        val infoWindowAnimationManager = aMap?.infoWindowAnimationManager
        infoWindowAnimationManager?.startAnimation()
        mMarker?.showInfoWindow()
        mMarker?.isInfoWindowEnable = true
        onInfoWindowClick(mMarker)
    }




}

Ok,就是这样,实现这几个接口,然后就能在一个定位点上显示一个小的信息窗体了,至于窗体的形状样式,自己可以在layout_gd_map_distance里更改

  • 显示多个信息窗体的
    这种的就是类似小黄车ofo 或者哈罗单车的效果了,在一个聚合区域里显示多个定位点,点上呢都有个信息的弹窗,也是可以自定义的,效果呢,大家就参考哈罗单车吧


    image.png

我们还是直接看代码

        aMap?.myLocationStyle = myLocationStyle
        //实例化UiSettings类对象
        mUiSettings = aMap?.uiSettings
        //不显示缩放按钮
        mUiSettings?.isZoomControlsEnabled = false
        //不显示我的位置
        myLocationStyle.showMyLocation(false)
        // 设置默认定位按钮是否显示
        aMap?.uiSettings?.isMyLocationButtonEnabled = false
        aMap?.isMyLocationEnabled = false
        //自定义InfoWindow
        aMap?.setInfoWindowAdapter(this)//AMap类中
        aMap?.setOnInfoWindowClickListener(this)
        //自己的位置
        val latLng = LatLng(worker_lat, worker_lon)
        mMarker = aMap?.addMarker(MarkerOptions().position(latLng)
                .title("运送位置")
                .snippet("运送位置")
                .setFlat(true)
                .icon(getBitamap()))
//             .icon(BitmapDescriptorFactory.fromResource(R.drawable.new_location_icon)))

最重要的就是这个icon方法了

    private fun getBitamap(): BitmapDescriptor? {
        var view = LayoutInflater.from(this@BubbleInfoUpActivity).inflate(R.layout.layout_title, null)
        return BitmapDescriptorFactory.fromView(view)


    }

Ok,想要什么样的弹窗就自己添加就好了
以上呢就是添加弹窗的两种方法,"砖厂繁忙,告辞了",搬砖码字去了。

相关文章

  • 高德地图显示单个窗体和显示多个窗体的方法

    高德地图是我经常使用过的组件,今天想跟大家讨论下信息窗体的创建与显示的方法,这种就是属于自定的内容了,需要到高德开...

  • C#窗体常用方法

    1.Show和ShowDialog方法: Show:显示无模式窗体 ShowDialog:显示模式对话窗体 窗体名...

  • CH02_3

    计算两个数的和(窗体应用程序)直接在窗体中显示

  • C#使用委托在窗体间传值

    任务:在窗体1点击按钮显示窗体2,在窗体2点击按钮将该窗体TextBox的值传递给窗体1的Label 直接看代码(...

  • C#实现全屏显示及退出功能

    1. 新建FormFullscreen窗体 新建FormFullscreen窗体作为全屏显示,属性设置如下: 2....

  • Delphi窗体创建

    Delphi窗体创建,主要分为模态创建和非模态创建窗体,区别在于当显示模式窗体的时候你是不能操作本程序的其他窗体的...

  • MDI界面程序制作

    MDI界面程序制作 MDI窗体的特点 MDI的容器窗体(父窗体)必须且只能有一个,其客户区用于显示子窗体。不要在容...

  • vue 高德地图AMap.MassMarks添加海量点标记、AM

    高德地图添加海量点标记和创建自定义信息窗体的封装 假设已经正确引入了高德地图。那后面就直接看代码 这里说下geoJ...

  • Ionic中$ionicModal显示高德地图

    在项目中需要在$ionicModal中显示高德地图时需要自己定义一个方法,在模式框显示后再调用高德地图初始化方法 ...

  • GUI.Window的用法

    下面我们用代码实现一个通过开关显示窗体的隐藏和显示的功能,代码如下: 显示效果如下:

网友评论

      本文标题:高德地图显示单个窗体和显示多个窗体的方法

      本文链接:https://www.haomeiwen.com/subject/atcfuqtx.html