2016-05-28 12 views
-1

ポリラインの緯度と経度を取得しようとしています。ポリラインオブジェクトから緯度と経度を取得する方法

以下は、私が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オブジェクトの緯度と経度をフェッチしようとしているコードの一部です。 Coordinates[i].setMap(map); //or Coordinates[i].setMap(null);ラインが働いていた地図上のポリラインを表示するには

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

。しかし、マップ上に描かれているポリラインを緯度と経度で表示する必要があります。

ポリラインの緯度と経度を取得するために、私はグーグルでStackoverflowのポストをいくつか調べて、ポリラインオブジェクトから緯度と経度を取得するために使用できるメソッドを見つけました。

alert(Coordinates [i] .latitude);

アラート(Coordinates [i] .longitude);

アラート(Coordinates [i] .get( 'Latitude'));

アラート(Coordinates [i] .get( '経度'));

しかし、残念ながら上記のいずれも機能しませんでした。ポリラインオブジェクトから緯度と経度を取得する方法を見つけるのを手伝ってください。

ありがとうございます。

答えて

1

documentationによれば、google.maps.Polyline.getPath()メソッドを使用してポリラインの座標を取得できます。

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);
html, 
 
body, 
 
#map_canvas { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0px; 
 
    padding: 0px 
 
}
<script src="https://maps.googleapis.com/maps/api/js"></script> 
 
<div id="map_canvas"></div>

+0

あなたの答えをいただき、ありがとうございます。それは私が答えに近づくのを助けました。しかし、私は、ポリラインのEnd lat lngと共にStart latとlngが必要でした。私はgetArray()メソッドを使用してそれを取得し、さらにjsonに配列をstringyfyingし、json形式のデータを解析します。もう一度お世話になりました。 –

関連する問題