如何苹果怎么设置图标位置Marker图标的位置

2277人阅读
百度地图(3)
通过Icon类可实现自定义标注的图标,下面示例通过参数MarkerOptions的icon属性进行设置,
也可以使用marker.setIcon()方法。
&script type="text/javascript"&
var map = new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(116.323066,39.989956), 16);
map.addControl(new BMap.MapTypeControl());
map.setCurrentCity("北京");
map.enableScrollWheelZoom(true);
var points = [
[116.316967,39.990748],
[116.323938,39.989919],
[116.328896,39.988039],
[116.321135,39.987072],
[116.332453,39.989007],
[116.324045,39.987984],
[116.322285,39.988316],
[116.322608,39.986381]
for( var i = 0;i & points. i++){
var myIcon = new BMap.Icon("1.z0./markers.png", new BMap.Size(23, 25), {
offset: new BMap.Size(10, 25),
imageOffset: new BMap.Size(0, 0 - i * 25)
var point = new BMap.Point(points[i][0],points[i][1]);
var marker = new BMap.Marker(point,{icon: myIcon});
map.addOverlay(marker);
所使用图片:
演示地址:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
需要交换友链的请留言
访问:1354685次
积分:23843
积分:23843
排名:第196名
原创:548篇
转载:23篇
译文:26篇
评论:1447条后使用快捷导航没有帐号?
暂时没有人问过相似的问题,你可以做第一个提问题的人
查看: 1917|回复: 11
如何设置Marker图标的位置
我使用MarkerOptions markerOptions = new MarkerOptions().position(latLng).icon(BitmapDescriptorFactory.fromBitmap(Bitmap));在地图上设置了一个Marker图标,Marker图标是一张图片(下图的正方形),& & & & & & & & & & & & & & & & & & & & & & & &
Marker示例.jpg (2.6 KB, 下载次数: 2)
12:59 上传
A点是该图标的中心点,B点是该图标的下边缘的中点,我想知道通过上面position(latLng)设置的latLng坐标设置的是哪个点啊?如果设置的是B点,那么如何能设置成A点?多多谢各位大神的指点啊!!!
请查看API文档
请查看API文档http://wiki./cms/androidsdk/doc/v3_4_0/
我看过了,文档上说position()方法设置的是Marker坐标的位置坐标,我想知道这个位置坐标是上图中的A点还是B点?求解啊!!!谢谢!
请查看API文档http://wiki./cms/androidsdk/doc/v3_4_0/
我也是这个问题,可以讲解一下吗
楼主解决了没有啊,我也是这个问题,困扰许久了
楼主解决了没有啊,我也是这个问题,困扰许久了
没有啊,之前一直没注意这个问题,昨天刚注意到。
没有啊,之前一直没注意这个问题,昨天刚注意到。
有一个可以设置锚点的函数
有一个可以设置锚点的函数
大哥,说话说完整好不撒,这个可以设置锚点的函数是哪个啊?急用啊!!!多多谢啦!!!
有一个可以设置锚点的函数
请问您说的可以设置锚点的函数是什么函数?急用啊!谢谢啦!
请问您说的可以设置锚点的函数是什么函数?急用啊!谢谢啦!
public void setAnchor(float anchorX,float anchorY)
设置 Marker 覆盖物的锚点比例,默认(0.5f, 1.0f)水平居中,垂直下对齐
public void setAnchor(float anchorX,float anchorY)
设置 Marker 覆盖物的锚点比例,默认(0.5f, 1.0f ...
谢谢啦,按照你说的找到哪个方法了,多多谢啦!!!
楼主解决了没有啊,我也是这个问题,困扰许久了
用Marker.setAnchor(float,float)方法可以设置Marker图标的中心点
Powered byMarkerOptions 怎么重新设置图标_百度知道52525人阅读
var map = new BMap.Map(&map&); // 创建地图实例
var point = new BMap.Point(116.404, 39.915); // 创建点坐标
map.centerAndZoom(point, 15); // 初始化地图,设置中心点坐标和地图级别
map.addControl(new BMap.NavigationControl());
map.addControl(new BMap.ScaleControl());
map.setDefaultCursor(&crosshair&);
map.addEventListener(&click&, function(e){
//点击事件
if(!e.overlay){
var myIcon = new BMap.Icon(&http://api./img/markers.png&, new BMap.Size(23, 25), {
offset: new BMap.Size(10, 25), // 指定定位位置
imageOffset: new BMap.Size(0, 0 - 10 * 25) // 设置图片偏移
var marker=new BMap.Marker(e.point,{icon:myIcon});
map.removeOverlay(preMarker);
map.addOverlay(marker);
preMarker=
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:970277次
积分:8249
积分:8249
排名:第1671名
原创:121篇
转载:86篇
评论:98条
(1)(1)(3)(2)(3)(3)(6)(3)(6)(8)(15)(3)(11)(6)(8)(25)(10)(7)(11)(6)(3)(27)(15)(19)(6)Bill_Hoo 的BLOG
用户名:Bill_Hoo
文章数:66
评论数:380
访问量:462167
注册日期:
阅读量:5863
阅读量:12276
阅读量:336595
阅读量:1040406
51CTO推荐博文
& & bill在一文中介绍了在Android开发中使用GoogleMap API所需的准备工作,本文将在该准备工作就绪的前提下介绍如何在GoogleMap上显示自定义的地标。如下图所示:&
& & 其实Google Map中的地标(或者说图标更贴切)就是位于地图图层上的一个新图层,我们只需要简单的将自己的图标(或者是图标集合)添加到Google Map内置的图标图层里去即可。
& & 以上文中的HelloGoogleMap为例
activity_main.xml
&xmlns:android=&/apk/res/android&&&&&&xmlns:tools=&/tools&&&&&&android:layout_width=&fill_parent&&&&&&android:layout_height=&fill_parent&&&&&&&&&&&&&&&&&android:id=&@+id/mapview&&&&&&&&&&android:layout_width=&fill_parent&&&&&&&&&&android:layout_height=&fill_parent&&&&&&&&&&android:apiKey=&你所获得的API KEY&&&&&&&&&&android:clickable=&true&&&&&&
package&com.billhoo.study.&&import&java.util.L&&import&android.graphics.drawable.D&import&android.os.B&&import&com.google.android.maps.GeoP&import&com.google.android.maps.MapA&import&com.google.android.maps.MapV&import&com.google.android.maps.O&import&com.google.android.maps.OverlayI&&public&class&MainActivity&extends&MapActivity&{&&&&&MapView&mMapView&=&null;&&&&&&&&&&&&@Override&&&&&public&void&onCreate(Bundle&savedInstanceState)&{&&&&&&&&&super.onCreate(savedInstanceState);&&&&&&&&&setContentView(R.layout.activity_main);&&&&&&&&&mMapView&=&(MapView)&findViewById(R.id.mapview);&&&&&&&&&mMapView.setBuiltInZoomControls(true);&&&&&&&&&&&&&&&@Override&&&&&protected&boolean&isRouteDisplayed()&{&&&&&&&&&return&false;&&&&&}&}&
& & 上述代码能够在MainActivity中显示GoogleMap,接下来我们将编写自定义的图标类HelloItemizedOverlay,本类维护一个图标集合,并在需要时由用户将本类对象添加进GoogleMap内置的图标集合中去,从而实现地图上图标的显示以及其他相关操作。代码如下:
package&com.billhoo.study.&&import&java.util.ArrayL&&import&android.app.AlertD&import&android.content.C&import&android.graphics.drawable.D&&import&com.google.android.maps.ItemizedO&import&com.google.android.maps.OverlayI&&@SuppressWarnings(&rawtypes&)&public&class&HelloItemizedOverlay&extends&ItemizedOverlay&{&&&&&private&ArrayList&OverlayItem&&mOverlayItems&=&new&ArrayList&OverlayItem&();&&&&&&private&Context&mContext&=&null;&&&&&&&&&&public&HelloItemizedOverlay(Drawable&defaultMarker)&{&&&&&&&&&super(boundCenter(defaultMarker));&&&&&&}&&&&&&&&&&public&HelloItemizedOverlay(Drawable&defaultMarker,&Context&context)&{&&&&&&&&&super(boundCenter(defaultMarker));&&&&&&&&&mContext&=&&&&&&}&&&&&&&&&&@Override&&&&&protected&OverlayItem&createItem(int&i)&{&&&&&&&&&return&mOverlayItems.get(i);&&&&&}&&&&&&&&&&@Override&&&&&public&int&size()&{&&&&&&&&&return&mOverlayItems.size();&&&&&}&&&&&&&&&&&&&&&&&@Override&&&&&protected&boolean&onTap(int&index)&{&&&&&&&&&OverlayItem&item&=&mOverlayItems.get(index);&&&&&&&&&AlertDialog.Builder&dialog&=&new&AlertDialog.Builder(mContext);&&&&&&&&&dialog.setTitle(item.getTitle());&&&&&&&&&dialog.setMessage(item.getSnippet());&&&&&&&&&dialog.show();&&&&&&&&&return&true;&&&&&}&&&&&&&&&&&&&&&&&&&public&void&addOverlay(OverlayItem&overlay)&{&&&&&&&&&mOverlayItems.add(overlay);&&&&&&&&&populate();&&&&&}&}&
& & 上述代码算是一个固定结构,期间重载了父类ItemizedOverlay的createItem(int i)、size()以及onTap(int index)方法,并且新增了一个用于添加新图标的addOverlay(OverlayItem overlay)方法(今后可以根据自己的需要增加诸如clear()、remove()等常用方法)。
& & 接下来需要做的事情便是利用上述工具类进行图标的添加了,修改后的MainActivity如下:
package&com.billhoo.study.&&import&java.util.L&&import&android.graphics.drawable.D&import&android.os.B&&import&com.google.android.maps.GeoP&import&com.google.android.maps.MapA&import&com.google.android.maps.MapV&import&com.google.android.maps.O&import&com.google.android.maps.OverlayI&&public&class&MainActivity&extends&MapActivity&{&&&&&private MapView&mMapView&=&null;&&&&&&&&&&&@Override&&&&&public&void&onCreate(Bundle&savedInstanceState)&{&&&&&&&&&super.onCreate(savedInstanceState);&&&&&&&&&setContentView(R.layout.activity_main);&&&&&&&&&mMapView&=&(MapView)&findViewById(R.id.mapview);&&&&&&&&&mMapView.setBuiltInZoomControls(true);&&&&&&&&&&&&&&&&&&&List&Overlay&&mapOverlays&=&mMapView.getOverlays();&&&&&&&&&&Drawable&drawable&=&this.getResources().getDrawable(&&&&&&&&&&&&&&&&&R.drawable.cur_location);&&&&&&&&&HelloItemizedOverlay&itemizedOverlays&=&new&HelloItemizedOverlay(&&&&&&&&&&&&&&&&&drawable,&this);&&&&&&&&&&&&&&&&&&&GeoPoint&point1&=&new&GeoPoint((int)&(35.422006&*&1E6),&&&&&&&&&&&&&&&&&(int)&(104.084095&*&1E6));&&&&&&&&&&OverlayItem&overlayItem1&=&new&OverlayItem(point1,&&我的第一个地标&,&&随便找个点&);&&&&&&&&&&&&&&&&&&&GeoPoint&point2&=&new&GeoPoint((int)&(35.4&*&1E6),&(int)&(139.46&*&1E6));&&&&&&&&&&OverlayItem&overlayItem2&=&new&OverlayItem(point2,&&这是第二个图标&,&&随便找的地点&);&&&&&&&&&&&&&&&&&&&itemizedOverlays.addOverlay(overlayItem1);&&&&&&&&&&itemizedOverlays.addOverlay(overlayItem2);&&&&&&&&&&&&&&&&&&&mapOverlays.add(itemizedOverlays);&&&&&&}&&&&&&&&&&@Override&&&&&protected&boolean&isRouteDisplayed()&{&&&&&&&&&return&false;&&&&&}&}&
& & 到此为止,在GoogleMap上显示自定义图标的基础部分已经全部完工,运行模拟器看看效果吧。
& & 依次点击第一个以及第二个气泡,便会弹出我们之前设置好的提示信息
& & 细心的朋友会发现,气泡的阴影部分怎么没有正确显示?别忙,请在代码段中加入如下处理&
...&&&&&&&&&OverlayItem&overlayItem2&=&new&OverlayItem(point2,&&这是第二个图标&,&&随便找的地点&);&&&&&&&&&&&&&&&&&&&&&&&&&&&&Drawable&marker&=&this.getResources().getDrawable(&&&&&&&&&&&&&&&&&R.drawable.cur_location);&&&&&&&&&int&w&=&marker.getIntrinsicWidth();&&&&&&&&&int&h&=&marker.getIntrinsicHeight();&&&&&&&&&marker.setBounds(-w&/&2,&-h,&w&/&2,&0);&&&&&&&&&&&&&&&&&&overlayItem1.setMarker(marker);&&&&&&&&&&&&&&&&&&&&&&&&&&&&itemizedOverlays.addOverlay(overlayItem1);&&...&
& & 再次运行,发现第一个点的阴影已经正确显示了。
& & 到此,bill已经将图标的添加介绍完毕,其中还包括了自己遇到的阴影错位问题的修正方法。但是,Android Google Map的陷阱还有很多,这也是bill这段时间以来一直在折腾的原因。接下来的文章,bill将一一向大家分享这些陷阱的解决方案,希望能够帮到那些像bill之前那样,对其中各种莫名其妙的异常或错误百思不得其解的朋友。本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)

我要回帖

更多关于 怎么设置桌面图标位置 的文章

 

随机推荐