2015-10-07 157 views
1

我正在創建一個使用google-maps cordova plugin的應用程序。我在一個div map_canvas無法點擊谷歌地圖上的按鈕覆蓋

var mapDiv = document.getElementById("map_canvas"); 
     // Initialize the map plugin 
     var map = plugin.google.maps.Map.getMap(mapDiv); 
     $scope.mapobj = map; 
     // You have to wait the MAP_READY event. 
     map.on(plugin.google.maps.event.MAP_READY, onMapInit); 
     var LOCATION; 

     function onMapInit(map) { 
     map.clear(); 
     LOCATION = new plugin.google.maps.LatLng($scope.lat,$scope.longi); 
     map.setMapTypeId(plugin.google.maps.MapTypeId.ROADMAP); 
     map.animateCamera({ 
      'target': LOCATION, 
      'zoom': 18 
     }); 
     map.addMarker({ 
      'position': LOCATION, 
      'title': $scope.markertitle, 
      'animation': plugin.google.maps.Animation.DROP 
     }, function (marker) { 
      marker.showInfoWindow(); 
     }); 
     } 

我已經把一個按鈕,地圖div內內創建一個地圖。但是,該按鈕不可點擊。但是,當我使地圖不可點擊時,

map.setClickable(false); 

該按鈕開始工作。但是,我也想讓地圖可點擊。因此,用戶將能夠移動地圖以更好地查看路線。爲什麼地圖不允許點擊按鈕?我喜歡獲得關於幕後的更多信息。我想過的其他工作是減少地圖div的高度並將其放在它下面。

enter image description here

+0

對於圖片尺寸我很抱歉,在這裏這麼大。不知道爲什麼? – Keerthivasan

回答

1

@Keerthivasan, 你有兩個(2)選項。

  1. 舉報什麼似乎是插件的作者的錯誤。
  2. 不使用插件。我已經使谷歌地圖工作沒有這個插件。

我只是使用Google提供的標準JS庫,並加載了我可以直接從手機中獲得的所有資源。如果您有興趣#2,那麼這裏有你的鏈接

祝您好運

0

爲什麼出現這種情況是因爲地圖是不是在你的應用程序,這是它的下面。你可能已經知道了; cordova應用程序在本地應用程序內的Web視圖中運行。您在此插件中使用的地圖不在Web視圖中,而是位於本機應用程序中。據我所知,部分網頁視圖設置爲透明,以顯示下方的地圖。

我想這是出於性能原因;因爲地圖可以在本機應用程序中運行,例如使用Java,比使用JavaScript的Web視圖快得多,或者我相信。就個人而言,我不建議使用JavaScript版本,而只是解決此問題。

有多種方法可以解決這個問題。我所做的是在標題中有一個more按鈕。當它被點擊時,它運行setClickable(false),如果用戶點擊背景或者更多列表中的任何按鈕,我最後執行動作setClickable(true)