Dav*_*vid 9 android overlay map marker
我想在Android地图上添加许多不同的标记.到目前为止,我的代码一遍又一遍地使用相同的叠加效果:
mapOverlays = mapView.getOverlays();
drawable = this.getResources().getDrawable(R.drawable.marker);
itemizedOverlay = new MyItemizedOverlay(drawable);
OverlayItem overlayItem = new OverlayItem(geoPoint, "foo", "bar");
mapOverlays.add(itemizedOverlay);
Run Code Online (Sandbox Code Playgroud)
这到目前为止工作正常.但每个标记都是一样的.我现在要做的是在地图上使用不同的标记,例如您在Google Maps Webapp上看到的标记(标记为"A",下一个标记为"B",依此类推).我怎样才能做到这一点?我是否必须在我的应用中添加额外的png标记文件?(marker_a.png,marker_b.png,...)或者是否有更简单的方法来实现这一目标?也可能会有超过26个结果,所以我可能需要不同颜色的标记.
Vik*_*šan 22
其中一个答案ItemizedOverlay为每个标记组提供了不同的解决方案.您可以ItemizedOverlay通过调用实现相同的功能overlayItem.setMarker(drawable)
如果您要从资源加载标记,请不要忘记致电:
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
Run Code Online (Sandbox Code Playgroud)
在你打电话之前setMarker.否则标记将不会显示.
由于标记是类型,Drawable您可以像任何其他标记一样获取它们Drawable,包括创建它们的运行时.
是的,你需要另一个 png,所以它看起来像这样:
mapOverlays = mapView.getOverlays();
// All "A"s
drawable = this.getResources().getDrawable(R.drawable.marker_a);
itemizedOverlay = new MyItemizedOverlay(drawable);
OverlayItem overlayItem = new OverlayItem(geoPoint, "foo", "bar");
mapOverlays.add(itemizedOverlay);
// All "B"s
drawable = this.getResources().getDrawable(R.drawable.marker_b);
itemizedOverlay = new MyItemizedOverlay(drawable);
OverlayItem overlayItem = new OverlayItem(geoPoint, "foo", "bar");
mapOverlays.add(itemizedOverlay);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10529 次 |
| 最近记录: |