diff --git a/src/android/plugin/google/maps/PluginMap.java b/src/android/plugin/google/maps/PluginMap.java index a3d379f0e..46dd6e78a 100644 --- a/src/android/plugin/google/maps/PluginMap.java +++ b/src/android/plugin/google/maps/PluginMap.java @@ -3179,5 +3179,20 @@ public void onRequestPermissionResult(int requestCode, String[] permissions, } } + public void setClickablePOI(JSONArray args, final CallbackContext callbackContext) throws JSONException { + final boolean clickable = args.getBoolean(0); + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + if (clickable) { + map.setOnPoiClickListener(PluginMap.this); + } else { + map.setOnPoiClickListener(null); + } + callbackContext.success(); + } + }); + } + } diff --git a/www/Map.js b/www/Map.js index 80373fc0c..c97bb53bc 100644 --- a/www/Map.js +++ b/www/Map.js @@ -89,6 +89,8 @@ Map.prototype.getMap = function(meta, div, options) { args = [meta]; options = options || {}; + self.set('clickablePOI', true) // Current POI are clickable by default + self.set('clickable', options.clickable === false ? false : true); self.set('visible', options.visible === false ? false : true); @@ -1586,4 +1588,15 @@ Map.prototype._onCameraEvent = function(eventName, cameraPosition) { } }; +Map.prototype.setClickablePOI = function(isClickable) { + var self = this; + isClickable = common.parseBoolean(isClickable); + self.set('clickablePOI', isClickable); + self.exec.call(self, null, self.errorHandler, this.__pgmId, 'setClickablePOI', [isClickable]); + return this; +}; +Map.prototype.getClickablePOI = function() { + return this.get('clickablePOI'); +}; + module.exports = Map;