我有阵列:
var stops = [];
stops[1] = {name:'One', lat:51.9219465100951 ,long:-8.61797176722262};
stops[2] = {name:'Two', lat:51.9270744 ,long:-8.6105043};
stops[3] = {name:'Three)', lat:51.9254898 ,long:-8.6100269};
我试图在地图上循环并显示这些标记......
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 51.933596, lng: -8.578540},
zoom: 14,
mapTypeId: 'hybrid'
});
for(var i=0; i<=stops.length; i++){
var mypos = {stops[i].lat, stops[i].long};
var marker = new google.maps.Marker({
position: mypos,
map: map,
title: stops[i].name
});
}
}
地图上没有标记。
我在[以下行]收到了意外的令牌错误。 var mypos = {stops [i] .lat,stops [i] .lng};
我已经改变了这个但仍然无法让它发挥作用。
答案 0 :(得分:2)
当你真正需要做的就是为你的位置传递stops[i]
时,你正在创建一个无效的对象
var mypos = {stops[i].lat, stops[i].lng};
应该是
var mypos =stops[i];
但是还有另外一个问题,数组索引是基于零的,但你从一个
开始创建初始数组的一种更简单的方法是
var stops = [
{name:'One', lat:51.9219465100951 ,lng:-8.61797176722262},
{name:'Two', lat:51.9270744 ,lng:-8.6105043},
{name:'Three)', lat:51.9254898 ,lng:-8.6100269}
];
请注意,属性名称long
已更改为lng
以匹配地图脚本使用的内容
答案 1 :(得分:0)
mypos需要:
var mypos = {lat: stops[i].lat, lng: stops[i].long};
没有“lat:”和“lng:”你试图将对象声明为数组。 'position'需要LatLngLiteral(见上文)或LatLng对象,声明如下:
var mypos = new google.maps.LatLng(stops[i].lat, stops[i].long};
答案 2 :(得分:0)
检查代码示例:
$(window).load(function() {
$(document).ready(function() {
var map;
var elevator;
var myOptions = {
zoom: 1,
center: new google.maps.LatLng(0, 0),
mapTypeId: 'terrain'
};
map = new google.maps.Map($('#map_canvas')[0], myOptions);
var addresses = ['Norway', 'Africa', 'Asia', 'North America', 'South America'];
for (var x = 0; x < addresses.length; x++) {
$.getJSON('http://maps.googleapis.com/maps/api/geocode/json?address=' + addresses[x] + '&sensor=false', null, function(data) {
var p = data.results[0].geometry.location
var latlng = new google.maps.LatLng(p.lat, p.lng);
new google.maps.Marker({
position: latlng,
map: map
});
});
}
});
}); //]]>
<script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&.js"></script>
<style type="text/css">
#map_canvas {
width: 500px;
height: 500px;
}
</style>
<div id="map_canvas"></div>