SitesOverlay 中的重复标记
我再次寻求比我更好的人的智慧...
我正在开发一个 Android 应用程序,它使用 Google 地图,并根据从网络读取的文件中的状态信息以编程方式在地图上放置标记。
我遇到的问题是每个标记都绘制了两次。一旦位于正确位置,一次稍低于(第二个标记的顶线与第一个标记的底部对齐)。
private class SitesOverlay extends ItemizedOverlay<OverlayItem> {
private List<OverlayItem> items=new ArrayList<OverlayItem>();
private Drawable marker=null;
public SitesOverlay(Drawable marker) {
super(marker);
this.marker=marker;
try {
data = getData();
} catch (MalformedURLException e) {
//
}
if (!data.equals("")) {
String[] msg = data.split(NEWLINE);
for (Integer i = 0; i < msg.length; i++) {
items.add(new OverlayItem(
getPoint(lat.get(suburb), lng.get(suburb)),
msg[i], msg[i]));
}
}
populate();
map.postInvalidate();
}
@Override
protected OverlayItem createItem(int i) {
return(items.get(i));
}
@Override
public void draw(Canvas canvas, MapView mapView,
boolean shadow) {
super.draw(canvas, mapView, false);
//boundCenterBottom(marker);
}
@Override
protected boolean onTap(int i) {
Toast.makeText(getBaseContext(),
items.get(i).getSnippet(),
Toast.LENGTH_LONG).show();
map.getController().setZoom(16 + zoomModifier);
return(true);
}
@Override
public int size() {
return(items.size());
}
}
但是,只有当我在绘图函数中取消注释boundCenterBottom(marker) 时,第二个标记才会变得明显。
几天来我一直在尝试弄清楚第二个标记的放置位置。有人能指出我正确的方向吗?
谢谢
编辑:我忘了提及,如果我触摸屏幕,未绑定CenterBottom的标记就会消失。
Once again I seek the wisdom of my betters...
I'm working on an Android app that uses Google Maps and programmatically puts markers on the map based on status info from a file read from the web.
The problem I have is that each marker is drawn twice. Once in the right spot and once a little below (the top line of the second marker is in line with the bottom of the first marker).
private class SitesOverlay extends ItemizedOverlay<OverlayItem> {
private List<OverlayItem> items=new ArrayList<OverlayItem>();
private Drawable marker=null;
public SitesOverlay(Drawable marker) {
super(marker);
this.marker=marker;
try {
data = getData();
} catch (MalformedURLException e) {
//
}
if (!data.equals("")) {
String[] msg = data.split(NEWLINE);
for (Integer i = 0; i < msg.length; i++) {
items.add(new OverlayItem(
getPoint(lat.get(suburb), lng.get(suburb)),
msg[i], msg[i]));
}
}
populate();
map.postInvalidate();
}
@Override
protected OverlayItem createItem(int i) {
return(items.get(i));
}
@Override
public void draw(Canvas canvas, MapView mapView,
boolean shadow) {
super.draw(canvas, mapView, false);
//boundCenterBottom(marker);
}
@Override
protected boolean onTap(int i) {
Toast.makeText(getBaseContext(),
items.get(i).getSnippet(),
Toast.LENGTH_LONG).show();
map.getController().setZoom(16 + zoomModifier);
return(true);
}
@Override
public int size() {
return(items.size());
}
}
However, the second marker only becomes evident if I uncomment the boundCenterBottom(marker) in the draw function.
I've been trying to workout what is placing the second marker for days. Can anyone point me in the right direction?
Thanks
EDIT: I forgot to mention that if I touch the screen the marker that is not boundCenterBottom disappears.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,终于知道出了什么问题了。
更改
为
Ok, finally worked out what was wrong.
Change
to