2011-12-21 15 views
2

マップ上に郵便番号の輪郭(境界線)をマークしたいと思います。 GoogleマップAPIを使用すると、郵便番号や住所を送信してログ/緯度を取得してから、地図上にアイコンを配置することができます。今私は、郵便番号で覆われたエリア全体を囲むボックスまたはポリゴンを作りたいと思います。これを行うためのAPIまたはメソッドはありますか? Googleマップや他のサービスが利用可能であれば使用できます。Googleマップで郵便番号/郵便番号の範囲を表示

アピ

if (geocoder)   {  
    geocoder.geocode({ 'address': address }, function (results, status) {     
     if (status == google.maps.GeocoderStatus.OK){ 
      var pcode = results[0].address_components[0].long_name; 
      var latitude = results[0].geometry.location.lat(); 
      var longitude = results[0].geometry.location.lng();     
     } 
    } 

答えて

1
geocoder.geocode({ 'address': address }, function (results, status) { 

    if (status == google.maps.GeocoderStatus.OK) { 

     var pcode = results[0].address_components[0].long_name; 
     var latitude = results[0].geometry.location.lat(); 
     var longitude = results[0].geometry.location.lng(); 

     //do whatever you want above then call the displayBounds function 
     displayBounds(results[0].geometry.bounds); 
    } 
}); 

function displayBounds(bounds) { 

    var rectangleOptions = { 
     strokeColor: '#0000ff', 
     strokeOpacity: 0.5, 
     strokeWeight: 3, 
     bounds: bounds 
    } 

    var rectangle = new google.maps.Rectangle(rectangleOptions); 

    rectangle.setMap(map); //map being your google.maps.Map object 
} 

...あなたは地図上の境界を表示することができます。この方法は郵便番号の緯度/経度を取得します。必ずしもそうとは限らないので、あなたの結果にgeometry.boundsが得られることを確認してください。

+0

これは実際に矩形を生成します。少なくともオランダではそうです。私は郵便番号のポリゴンの範囲を作って、 '3335、NL'を試してみたいと思います。これをどのようにしたらいいのでしょうか? –

+0

いいえ、Google Maps APIからこのような情報を得ることはできません。あなたが得るのは、あなたが検索した場所が適合するグローバル境界領域です。公式ドキュメントをご覧ください:https://developers.google.com/maps/documentation/javascript/geocoding 詳細情報:http://stackoverflow.com/questions/9491114/google-maps-api-v3 -geocoder-results-bound-with-bounds – MrUpsidown

0

DisplayZipCodeArea(results [0] .geometry.bounds、resultsMap);

enter image description here関数DisplayZipCodeArea(境界、resultsMap){

var rectangleOptions = { 
    strokeColor: '#0000ff', 
    strokeOpacity: 0.5, 
    strokeWeight: 3, 
    bounds: bounds 
} 

var rectangle = new google.maps.Rectangle(rectangleOptions); 

rectangle.setMap(resultsMap); //map being your google.maps.Map object 

}