无法在google-map android上触发geojson标记

时间:2016-08-16 20:00:20

标签: android google-maps geojson

我将geojson文件显示为谷歌地图Android应用程序上的图层。一切正常,但我无法点击geojson标记。

我已将代码改编为: https://github.com/googlemaps/android-maps-utils/blob/master/demo/src/com/google/maps/android/utils/demo/GeoJsonDemoActivity.java

但在第142行:

layer.setOnFeatureClickListener(new GeoJsonLayer.GeoJsonOnFeatureClickListener() {

我明白了:

cannot resolve method 'setOnFeatureClickListener()'

这是我在onPostExecute中的代码;

 @Override
        protected void onPostExecute(JSONObject jsonObject) {
            if (jsonObject != null) {
                // Create a new GeoJsonLayer, pass in downloaded GeoJSON file as JSONObject
                mLayer = new GeoJsonLayer(map, jsonObject);
                // Add the layer onto the map
                addColorsToMarkers();
                mLayer.addLayerToMap();


                mLayer.setOnFeatureClickListener(new GeoJsonLayer.GeoJsonOnFeatureClickListener() {
                    @Override
                    public void onFeatureClick(GeoJsonFeature feature) {

                    }
                });
            }
        }

我是否需要添加其他内容?

有什么建议吗? 感谢

1 个答案:

答案 0 :(得分:0)

我遇到了同样的错误,当我使用编译项目(':library')时,它带有示例项目,它运行正常。但是,如果我使用 编译com.google.maps.android:android-maps-utils:0.4 +' ,它错误

原因是可点击的geojson功能非常新,2016年6月9日发布。 所以它还没有更新到上面的0.4.3库。这就是为什么。 the new clickable geojson feature just added on Jun 9, 2016

因此,解决方法是手动将样本库项目用于您自己的项目,这是一个非常困难的部分,我已经尝试了5个小时使其工作。

首先,您将从样本库中创建一个jar文件。

第二步,将lib.jar文件复制到您的项目中。

第三,从项目中引用jar文件,完成

dependencies {
compile project(':library')
// Or, fetch from Maven:
//compile 'com.google.maps.android:android-maps-utils:0.4+'
compile 'com.google.android.gms:play-services-maps:9.4.0'
}