高德地图怎么在指定地点添加mark并且可以有点击事件csdn

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高德地图怎么在指定地点添加mark并且可以有点击事件csdn相关的知识,希望对你有一定的参考价值。

参考技术A <body>
<input type="hidden" value='$mapList ' id="mapList">
<div id="container"></div>
<script type="text/javascript">
var basePath = '<%=basePath%>';

var map = new BMap.Map("container"); // 创建地图实例
var point = new BMap.Point(121.53579, 31.227981); // 创建点坐标
map.centerAndZoom(point, 11); // 初始化地图,设置中心点坐标和地图级别
/* map.addControl(new BMap.NavigationControl(
// 靠左上角位置
anchor: BMAP_ANCHOR_TOP_LEFT,
// LARGE类型
type: BMAP_NAVIGATION_CONTROL_LARGE,
// 启用显示定位
enableGeolocation: true
));// 添加带有定位的导航控件 */
//map.addControl(new BMap.ScaleControl());//比例尺控件
//map.addControl(new BMap.OverviewMapControl());//缩略地图控件
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
//map.addControl(new BMap.MapTypeControl()); //地图类型控件,默认位于地图右上方。
map.setCurrentCity("上海");
//var marker = new BMap.Marker(point); // 创建标注
//var json=[name:"a",age:12,name:"b",age:11,name:"c",age:13,name:"d",age:14];
// 添加定位控件
/* var geolocationControl = new BMap.GeolocationControl();
geolocationControl.addEventListener("locationSuccess", function(e)
// 定位成功事件
var address = '';
address += e.addressComponent.province;
address += e.addressComponent.city;
address += e.addressComponent.district;
address += e.addressComponent.street;
address += e.addressComponent.streetNumber;
alert("当前定位地址为:" + address);
);
geolocationControl.addEventListener("locationError",function(e)
// 定位失败事件
alert(e.message);
);
map.addControl(geolocationControl); */
参考技术B 亲,开发的问题,还请到开发者网站中发帖咨询哦,小德帮不上忙,抱歉哈本回答被提问者采纳

高德地图怎样实现实时定位,得到当前地点的坐标,位置

开发指南第三章定位信息前半部分的代码实现的功能是:当手机采集的地理位置(经纬度)发生改变时在界面上显示出改变后的经纬度。如果开发过android原生定位程序的开发者应该对这部分代码不陌生,中规中矩,先注册位置监听服务,然后当位置发生改变后出发onLocationChanged()方法。现在请在官网上下载示例代码,导入工程后开启包com.amap.cn.apis.location中的MyLocation.java文件,该文件实现的主要功能是:初始化地图并且实现首次定位,地图会自动移动到定位点,我们一会便要基于这个文件来完成地图自动实时定位的功能。
看到这儿,有人可能想把MyLocation文件中的内容与第三章给出的android原生定位模块简单整合。如果你的解决思路是:在onLocationChanged()方法中企图在地图上绘制出当前的位置,那么就会遇到很大的麻烦。因为如果用高德地图提供的api在地图上绘制定位点的话一定要调用类MyLocationOverlay中的enableMyLocation()方法,根据官方参考资料,这个方法封装了android原生的类LocationManager中的requestLocationUpdates()方法,所以你在写onLocationChanged()方法前一定是已经调用了原生的类LocationManager中的requestLocationUpdates()方法,这样一来造成了LocationManager在没有removeUpdate前又进行了一次requestLocationUpdates,由此造成程序意外退出。
所以还是回到开发指南第三章,好好看看后半部分:如果想让地图跟随当前位置移动,需要继承MyLocationOverlay 并实现其onLocationChanged()方法,调用MapView.getController().animateTo()方法移动地图位置。官方用户指南上的这句原话正是问题的正解,不过官网实在太坑爹,简简单单几行文字和代码,对于浣熊这种刚刚接触地图开发的小白来说实在是看得一头雾水,还在一阵瞎折腾,终于解决了问题,所以共享出来,希望和我一样的小白能够少走些弯路。
我先把修改后的MyLocation.java文件整个贴出来,在增加或改动的代码前后均表明了注释(不包括包的改动):“/*change start*/”和"/*change end*/"
参考技术A 我的程序没有回调 -(void)reverseGeocodingSearch:(MAReverseGeocodingSearchOption*)geoCodingSearchOption Result:(MAReverseGeocodingSearchResult*)result方法?这个是高德地图里的逆地理查询的回调函数。
具体说明:我利用CoreLocatio下的locManager=[[CLLocationManager alloc]init];
// locManager.delegate=self;
// locManager.desiredAccuracy=kCLLocationAccuracyBest;
// locManager.distanceFilter=5.0f;
// [locManager startUpdatingLocation];

方法获取当前位置的经纬度,然后用

MASearch *maSearch=[[MASearch alloc]init];
MAReverseGeocodingSearchOption *searchOption=[[MAReverseGeocodingSearchOption alloc]init];
searchOption.config=@"SPAS";
searchOption.x=self.klatitude;
searchOption.y=self.klongitude;
[maSearch reverseGeocodingSearchWithOption:searchOption];方法逆地理编码获取当前城市的名字
参考技术B 打开GPS,点确定定当前位置即可。 参考技术C 通过手机GPS芯片定位的

以上是关于高德地图怎么在指定地点添加mark并且可以有点击事件csdn的主要内容,如果未能解决你的问题,请参考以下文章

高德地图怎么标点 怎样标点高德地图

百度地图标注位置怎么弄?

高德地图怎样实现实时定位,得到当前地点的坐标,位置

高德地图如何做地点标注?

高德地图怎么添加地址定位?

怎样在高德地图上标记自己公司的位置?