2012-07-05 48 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>