gpt4 book ai didi

java - 如何在点击事件中将标记放在多边形内?

转载 作者:行者123 更新时间:2023-12-05 00:01:17 25 4
gpt4 key购买 nike

有人知道如何在 GeoJsonLayer 中的 clik map 上获取事件,请遵循代码:

这里我在 map 中绘制了一个多边形:

GeoJsonLayer layer = new GeoJsonLayer(googleMap, new JSONObject(myGeoJsonObject.toString()));

Polygon draw

我可以使用以下代码将标记放在多边形绘制之外:

map.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
googleMap.addMarker(new MarkerOptions()
.position(latLng)
.title("Hello world"));
}
});

Marker outside from polygon

但是当我点击绘制区域时,唯一的事件触发是下面的代码,使用这种方法我无法获取纬度和经度。

layer.setOnFeatureClickListener(new GeoJsonLayer.GeoJsonOnFeatureClickListener() {
@Override
public void onFeatureClick(GeoJsonFeature geoJsonFeature) {
try {
System.out.println(geoJsonFeature.getGeometry());
}catch (Exception e) {
e.printStackTrace();
}
}
});


GoogleMap map = layer.getMap();

map.setOnPolygonClickListener(new GoogleMap.OnPolygonClickListener() {
@Override
public void onPolygonClick(Polygon polygon) {
System.out.println(polygon.getId());
}
});

谢谢。

最佳答案

当你正在绘制一个多边形并且你需要在之前绘制的多边形上放置标记或绘制另一个多边形时,只需将之前绘制的多边形设置为

previousPolygon.setClickable(false);

就是这样,即使您在多边形区域上单击,现在也可以获得 map 的经纬度。现在借助经纬度,您可以在之前绘制的多边形上绘制标记或另一个多边形。

关于java - 如何在点击事件中将标记放在多边形内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40909241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com