如何在地图标记图像上设置索引号

5

我正在制作一款地图应用程序,其中包含20家餐厅的数据,并希望使用叠加针在地图上显示所有餐厅。现在我的实际问题是,我想在每个针上显示索引号(例如如果有20个针,则所有针都应具有表示列表中餐厅编号的索引号1、2、3)。 有人可以告诉我如何在单个针图像上放置索引号?我想使用相同的图像进行叠加。


你需要循环遍历可绘制物数组(具有索引编号的图像),其次是根据所获得的placemark数量进行循环。 - Hanry
有没有办法在同一张图片上添加索引号...假设将来我的结果增加,那么带有索引号的图像就不是正确的选项。 - Nirav Bhandari
你可以使用balloonOverlay,但只有在点击该标记时才能看到它 :( - Hanry
2个回答

3
这是我在项目后期发现的一个事实:MapView实际上是一个ViewGroup此处也提到了)。因此,您可以使用一个按钮(或文本视图、一些嵌套布局,或者任何想要显示在地图上方的控件),分配一个MapView.LayoutParams实例并将其添加到MapView中,而不是使用有点复杂的叠加层和可绘制对象。
代码示例:
// Create the overlay pin
View overlayPin = getLayoutInflater().inflate(R.layout.overlay_pin, null);
// Number it according to your question, e.g.
((TextView)(overlayPin.findViewById(R.id.overlay_text))).setText("1"); 

假设你想要在地理坐标为-60,30的位置放置一个图钉。

// Set a layout params to the pin.
overlayPin.setLayoutParams(new MapView.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, new GeoPoint(-60000000, 30000000), MapView.LayoutParams.BOTTOM_CENTER);
// Add the pin to the map
mapView.addView(overlayPin);

这样,你可以只有一个图形资源作为地图针的背景,并使用一个 TextView 显示编号。


0
你需要扩展drawable类并覆盖onDraw方法。在其中,你可以使用canvas.drawText来在图钉上写入数字。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接