如何从折线对象获取纬度和经度

时间:2016-05-28 07:13:15

标签: javascript google-maps google-maps-api-3 jquery-plugins

我正在尝试获取折线的纬度和经度。

下面是我正在创建Polyline对象的代码示例,它正在工作。

var startLat = parseFloat(lineSplit[7]);
var startLng = parseFloat(lineSplit[8]);
var endLat = parseFloat(lineSplit[19]);
var endLng = parseFloat(lineSplit[20]);
var polyCoordinates = new Array();

polyCoordinates.push(new google.maps.LatLng(startLat,startLng));
polyCoordinates.push(new google.maps.LatLng(endLat,endLng));
polyLinesArr.push(new google.maps.LatLng(startLat,startLng));
polyLinesArr.push(new google.maps.LatLng(endLat,endLng));

polyPath = new google.maps.Polyline({
path: polyCoordinates,
geodesic: true,
strokeColor: '#060AB1',
strokeOpacity: 1.0,
strokeWeight: 2
});
Coordinates.push(polyPath); 

以下是我正在尝试获取Polyline对象的纬度和经度的代码片段。

for (i=0; i<Coordinates.length; i++) 
{                           
    //alert(map.getBounds().contains(Coordinates[i].getPosition()));
    //alert(JSON.stringify(Coordinates[i]));
    alert(Coordinates[i].latitude + " , " + Coordinates[i].longitude);
    alert(Coordinates[i].get('Latitude') + " , " + Coordinates[i].get('Longitude'));
    Coordinates[i].setMap(map); //or Coordinates[i].setMap(null);
}

在地图上显示折线Coordinates[i].setMap(map); //or Coordinates[i].setMap(null);。但是我需要在地图上绘制折线,显示纬度和经度。

为了获得折线的纬度和经度,我用Google搜索并浏览了Stackoverflow中的一些帖子,找到了以下用于从折线对象中获取纬度和经度的方法。

  

警报(坐标[I] .latitude);

     

警报(坐标[I] .longitude);

     

警报(坐标[I]获得( '纬度'));

     

警报(坐标[I]获得( '经度'));

但不幸的是,以上都没有奏效。请帮我找出从折线对象获取纬度和经度的方法。

提前谢谢你。

1 个答案:

答案 0 :(得分:1)

根据documentation,可以使用.getPath()的{​​{1}}方法检索折线的坐标。

&#13;
&#13;
google.maps.Polyline
&#13;
function initialize() {
  var map = new google.maps.Map(
    document.getElementById("map_canvas"), {
      center: new google.maps.LatLng(41, -70),
      zoom: 13,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

  var startLat = 42;
  var startLng = -72;
  var endLat = 40;
  var endLng = -70;
  var polyCoordinates = new Array();

  polyCoordinates.push(new google.maps.LatLng(startLat, startLng));
  polyCoordinates.push(new google.maps.LatLng(endLat, endLng));


  polyPath = new google.maps.Polyline({
    path: polyCoordinates,
    geodesic: true,
    strokeColor: '#060AB1',
    strokeOpacity: 1.0,
    strokeWeight: 2,
    map: map
  });
  var bounds = new google.maps.LatLngBounds();
  for (var i = 0; i < polyPath.getPath().getLength(); i++) {
    bounds.extend(polyPath.getPath().getAt(i));
    console.log(polyPath.getPath().getAt(i).toUrlValue(6));
  }
  map.fitBounds(bounds);
}
google.maps.event.addDomListener(window, "load", initialize);
&#13;
html,
body,
#map_canvas {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
}
&#13;
&#13;
&#13;