Google地图显示地球的另一面

问题描述

我实际上一直在尝试任何事情,但是当我收到的坐标是针对美国城市时,地图会显示在南极洲的某个地方。

以下是初始化地图的代码

$(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();
});

以下是八个城市数组的结果的屏幕截图: screen shot of the google map