请查看我的代码以从geojson字符串创建图层并将图层添加到地图:
private GeoJsonLayer createLayerFromGeojson(String json)
{
JSONObject ob = null;
try
{
ob = new JSONObject(json);
}
catch (JSONException e)
{
e.printStackTrace();
}
GeoJsonLayer layer = new GeoJsonLayer(googleMap, ob);
layer.addLayerToMap();
layer.setOnFeatureClickListener(feature -> Utils.showMessage(getActivity(), "Clicked", feature.getProperty("description").toString()));
return layer;
}
接下来添加2个图层来映射:
String json = /*first geojson string here*/
String json2 = /*another geojson string here*/
createLayerFromGeojson(json);
createLayerFromGeojson(json2);
问题:当我点击标记或pologon时,即使我在第一层上点击从第一个json创建的对象,也会显示从第二个json(json2)获取的描述。
出了什么问题?有什么想法吗?
答案 0 :(得分:2)
如果您查看方法setOnFeatureClickListener
的文档,则说明:
为整个GoogleMap对象设置单击监听器,当点击地图上的对象(多边形,标记,折线)时,将使用相应的Feature对象调用该监听器。
对我而言,我们不能拥有来自不同GeoJson的信息的多个层,这似乎很愚蠢。它需要是MultiPolygon,MultiLineString或MultiPoint。