我正在使用 jquery-ui-map 3.0 RC 来简化使用 json 使用 javascript api v3 在谷歌地图上放置标记的过程。
当我使用 html 文件进行原型设计时,它运行良好。一旦我开始在 MVC4 项目中使用嵌入代码并使用 iis express 进行调试,我会在 Google Chrome 开发人员工具中出现错误“未捕获的类型错误:对象 [对象对象] 没有方法 'gmap'。
<script type="text/javascript" src="http://maps.google.com/maps/api/js?key=MYBROWSERAPIKEYISHERE&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="../../Scripts/jquery.ui.map.js"></script>
<script type="text/javascript" src="../../Scripts/gmap3.js"></script>
<script type="text/javascript">
$(document).ready(function () {
initialize();
});
function getMarkers() {
// This URL won't work on your localhost, so you need to change it
// see http://en.wikipedia.org/wiki/Same_origin_policy
$.getJSON('../../Data/Australia-WA-Perth.json', function (data) {
$.each(data.markers, function (i, marker) {
$('#map_canvas').gmap('addMarker', {
'position': new google.maps.LatLng(marker.latitude, marker.longitude),
'bounds': true
}).click(function () {
$('#map_canvas').gmap('openInfoWindow', { 'content': marker.content }, this);
});
});
});
}
function initialize() {
var pointCenter = new google.maps.LatLng(-31.95236980, 115.8571791);
var myMapOptions = {
zoom: 17,
center: pointCenter,
mapTypeId: google.maps.MapTypeId.ROADMAP //TERRAIN
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myMapOptions);
google.maps.event.addListenerOnce(map, 'idle', function () {
getMarkers();
});
}
</script>