2012-07-05 47 views
4

我使用下面的代碼通過使用jQuery,jQueryUI的地圖和谷歌地圖API如何addShape()一個谷歌地圖jQueryUI的地圖上正確

$('#map_canvas').gmap('getCurrentPosition', function(position, status) { 
      if (status === 'OK') { 
       var clientPosition = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); 
       $('#map_canvas').gmap('addMarker', {'position': clientPosition, 'bounds': false}); 
       $("#map_canvas").gmap("option", "center", clientPosition); 
       $('#map_canvas').gmap('option', 'zoom', 14); 
       $('#map_canvas').gmap('addShape', 'Circle', { 
        'strokeColor': "#008595", 
        'strokeOpacity': 0.8, 
        'strokeWeight': 2, 
        'fillColor': "#008595", 
        'fillOpacity': 0.35, 
        'center': clientPosition, 
        'radius': 50, 
        'clickable': false }); 
      } 
}); 

添加形狀地圖我也嘗試調用$('#map_canvas')上的.addShape方法。但我只得到以下錯誤:

Uncaught TypeError: Cannot call method 'apply' of undefined jquery.ui.map.js:46 
$.a.$.fn.(anonymous function) jquery.ui.map.js:46 
e.extend.each jquery.min.js:2 
e.fn.e.each jquery.min.js:2 
$.a.$.fn.(anonymous function) jquery.ui.map.js:40 
(anonymous function) :8080:397 
$.extend.getCurrentPosition 

有誰知道如何解決這個問題?在http://jquery-ui-map.googlecode.com/svn/trunk/demos/jquery-google-maps-geolocation.html作品出於某種原因,例如..我只是無法弄清楚實際相差..也許我現在就失明)

感謝,

帕特

回答

7

有同樣的問題,從沒有提及同一文檔產卵包括jquery.ui.map.overlays.js

的代碼表示

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script> 
<script type="text/javascript" src="PATH_TO_PLUGIN/jquery.ui.map.js"></script> 
<script type="text/javascript" src="PATH_TO_PLUGIN/jquery.ui.map.extensions.js"></script> 

時候,其實你需要

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script> 
<script type="text/javascript" src="PATH_TO_PLUGIN/jquery.ui.map.js"></script> 
<script type="text/javascript" src="PATH_TO_PLUGIN/jquery.ui.map.overlays.js"></script> 

事實上,測試,它的工作原理沒有jquery.ui.map.extensions.js

+0

非常感謝你,你讓我很快樂! – wzr1337

1

我評論jquery.ui.map.extensions.js並添加jquery.ui.map.overlays.js但它沒有幫助

<script type="text/javascript" charset="utf-8" src="js/jquery-1.9.1.min.js"> </script> 
<script type="text/javascript" src="js/jquery.ui.map.js"></script> 
<!--script type="text/javascript" src="js/jquery.ui.map.extensions.js"></script--> 
<script type="text/javascript" src="js/jquery.ui.map.overlays.js"></script> 

這導致對象#沒有方法'getCurrentPosition'錯誤。

然後我取消註釋jquery.ui.map.extensions.js然後它爲我工作。

<script type="text/javascript" charset="utf-8" src="js/jquery-1.9.1.min.js"> </script> 
<script type="text/javascript" src="js/jquery.ui.map.js"></script> 
<script type="text/javascript" src="js/jquery.ui.map.extensions.js"></script> 
<script type="text/javascript" src="js/jquery.ui.map.overlays.js"></script> 

反正謝謝莫克!它確實有幫助。

+0

看來這取決於你的代碼實際使用的功能,那麼你會選擇天氣,你需要extensions.js – Moak

0

它必須是這樣的:

<script type="text/javascript" src="jquery/2.1.0/jquery-2.1.0.min.js"></script> 
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=true"></script> 
<script type="text/javascript" src="jquery-ui-map/3.0-rc/ui/min/jquery.ui.map.min.js"></script> 
<script type="text/javascript" src="jquery-ui-map/3.0-rc/ui/jquery.ui.map.extensions.js"></script> 
<script type="text/javascript" src="jquery-ui-map/3.0-rc/ui/jquery.ui.map.overlays.js"></script>