2016-05-23 1 views
1

Googleマップには2つのルート、ルートA to BおよびC to Dがあります。現在、C to Dの経路は、同じ路線/経路を経路A to Bと共有しています。他のポリラインにあるかどうかを確認するにはどうすればよいですか?あなたが与えられた点は、ポリゴンやポリラインの内部や近くにあるかどうかを判断するユーティリティ関数が含まれているGeometry Library's poly名前空間を使用することができますC to D is on A to B2つのルートがパスを共有しているかどうかを確認する方法

答えて

0

:たとえば

isLocationOnEdge(point:LatLng, poly:Polygon|Polyline, tolerance?:number)メソッドを使用して、点がポリライン上にあるか、ポリゴンの端にあるか、ポリゴンの端にあるかどうかを判定します。ポイント、ポリライン/ポリゴン、およびオプションで許容度の度合いを度でgoogle.maps.geometry.poly.isLocationOnEdge()に渡す必要があります。ポイントと線または辺の最も近い点の間の距離が指定された許容値内にある場合、関数はtrueを返します。

例:

function initialize() { 
    var myPosition = new google.maps.LatLng(46.0, -125.9); 

    var mapOptions = { 
    zoom: 5, 
    center: myPosition, 
    mapTypeId: google.maps.MapTypeId.TERRAIN 
    }; 

    var map = new google.maps.Map(document.getElementById('map'), 
     mapOptions); 

    var cascadiaFault = new google.maps.Polyline({ 
    path: [ 
     new google.maps.LatLng(49.95, -128.1), 
     new google.maps.LatLng(46.26, -126.3), 
     new google.maps.LatLng(40.3, -125.4) 
    ] 
    }); 

    cascadiaFault.setMap(map); 

    if (google.maps.geometry.poly.isLocationOnEdge(myPosition, cascadiaFault, 10e-1)) { 
    alert("Relocate!"); 
    } 
} 

google.maps.event.addDomListener(window, 'load', initialize); 

また、GitHubの上でこれらのexamplesを確認することができます。

関連する問題