问题描述
我实际上一直在尝试任何事情,但是当我收到的坐标是针对美国城市时,地图会显示在南极洲的某个地方。
以下是初始化地图的代码:
$(window).on('load',function() {
// eslint-disable-next-line
function inittest() {
var fastestCitiesApi = JSON.parse(document.getElementById('fastestCitiesApi').value);
console.log(fastestCitiesApi);
var tempLatLng = fastestCitiesApi[0]['latLng'];
console.log(tempLatLng);
var latLng = tempLatLng.split(',');
console.log('latLng[0]: ' + latLng[0]);
console.log('latLng[1]: ' + latLng[1]);
const myLatLng = new google.maps.LatLng({ lat: parseFloat(latLng[0]),lng: parseFloat(latLng[1]) });
const mapOptions = {
zoom: 4,center: myLatLng
};
const map = new google.maps.Map(document.getElementById('fastest_cities_map'),mapOptions);
new google.maps.Marker({
position: myLatLng,map,title: 'somewhere',});
}
inittest();
});
如您所见,控制台的以下屏幕快照显示,坐标为36、78-当我在Google上查询弗吉尼亚州的博伊顿时,坐标为-{{ 3}} link to google search for Boydton,VA lat long
如屏幕截图所示,我的错误为零。我在做什么错了?
预先感谢
解决方法
感谢@Gray指出long应该为负数,其余数组按预期加载了标记。
这是最终代码:
$(window).on('load',function() {
// eslint-disable-next-line
function initTest() {
/* init vars */
const map = new google.maps.Map(document.getElementById('fastest_cities_map'));
var fastestCitiesApi = JSON.parse(document.getElementById('fastestCitiesApi').value);
// console.log(fastestCitiesApi);
var tempLatLng = '';
var latLng = [];
var markerOptionsArray = new Array();
var latlngArray = new Array();
var myLat = new Array();
var myLng = new Array();
var markers = [];
var nameArray = [];
var infowindow = new google.maps.InfoWindow({maxWidth: 350});
/* create arrays for markers */
for(var item in fastestCitiesApi) {
tempLatLng = fastestCitiesApi[item]['latLng'];
nameArray.push(fastestCitiesApi[item]['city']);
// console.log(tempLatLng);
latLng = tempLatLng.split(',');
myLat.push(latLng[0]);
myLng.push(latLng[1]);
// console.log('latLng[0]: ' + latLng[0]);
// console.log('latLng[1]: ' + latLng[1]);
markers.push({
lat: myLat[item],lng: myLng[item],name: nameArray[item],});
}
// console.log('markers: ' + JSON.stringify(markers));
var bounds = new google.maps.LatLngBounds();
for (var v=0; v<markers.length; v++)
{
var secheltLoc = new google.maps.LatLng(markers[v].lat,markers[v].lng);
var myOptions = {
content: markers[v].name,boxStyle: {
border: "none",textAlign: "center",fontSize: "12pt",width: "120px"
},disableAutoPan: true,pixelOffset: new google.maps.Size(-50,0),position: secheltLoc,closeBoxURL: "",isHidden: false,pane: "mapPane",enableEventPropagation: true
};
var marker = new google.maps.Marker({
position: new google.maps.LatLng(markers[v].lat,markers[v].lng),map: map,center: new google.maps.LatLng(markers[v].lat,markers[v].lng)
});
google.maps.event.addListener(marker,'click',(function (marker,v) {
return function () {
infowindow.setContent(markers[v].name);
infowindow.open(map,marker);
}
})(marker,v));
google.maps.event.addListener(map,function () {
infowindow.close();
marker.open = false;
});
bounds.extend(new google.maps.LatLng(markers[v].lat,markers[v].lng));
myLatLng = markers[v].lat+','+markers[v].lng;
}
map.fitBounds(bounds);
}
// alert(google.maps.Map);
initTest();
});