我正在尝试使用谷歌地图添加新加坡巴士站的标记。 我的代码:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map_canvas { height: 100% }
</style>
<script type="text/javascript"
src="http://maps.googleapis.com/maps/api/js? key=AIzaSyB_rFf5Ow4UXIxmXtRXMvVbfIinBSWDc7o&sensor=false">
</script>
<script type="text/javascript">
var map;
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(1.290270,103.851959 ),
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);
}
</script>
<script type="text/javascript" src="http://code.jquery.com/jquery- latest.min.js"></script>
</head>
<body onload="initialize()" >
<div id="map_canvas" style="width:100%; height:100%"></div>
<script type="text/javascript">
$(document).ready(function() {
$.getJSON("bus-stops.json", function(json1) {
$.each(json1, function(key, data) {
var latLng = new google.maps.LatLng(data.lat, data.lng);
// Creating a marker and putting it on the map
var marker = new google.maps.Marker({
position: latLng,
title: data.name
});
marker.setMap(map);
});
});
});
</script>
我已将bus-stops.json 放在与此文件相同的文件夹中。该代码仅显示没有标记的谷歌地图。数据如下所示:
[{"no":"10009","lat":"1.28210155945393","lng":"103.81722480263163","name":"Bt Merah Int"},{"no":"10011","lat":"1.2777380589964","lng":"103.83749709165197","name":"Opp New Bridge Rd Ter"}]
请告诉我哪里出错了。谢谢
最佳答案
很可能是时间问题。从初始化函数中调用异步$.getJSON
函数,或者处理 map 运行时未初始化的情况。
var map;
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(1.290270, 103.851959),
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);
$.getJSON("bus-stops.json", function(json1) {
$.each(json1, function(key, data) {
var latLng = new google.maps.LatLng(data.lat, data.lng);
// Creating a marker and putting it on the map
var marker = new google.maps.Marker({
position: latLng,
title: data.name
});
marker.setMap(map);
});
});
}
关于Javascript:使用 json 文件在谷歌地图上添加标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40971251/