2017-01-18 6 views
1

私はGoogleマップAPIを使用してアドレステキストから緯度と経度を取得しようとしています。Googleマップapiは正確なアドレスに緯度/経度を表示しません。C#

ここに私が試したコードがあります。

まず:

var locationService = new GoogleLocationService(); 
var point = locationService.GetLatLongFromAddress(business.Address2); 

var latitude = point.Latitude; 
var longitude = point.Longitude; 

第二:

IGeocoder geocoder = new GoogleGeocoder() { }; 
Address[] addresses = geocoder.Geocode(business.Address2).ToArray(); 
foreach (Address adrs in addresses) 
{ 
    var test = adrs.Coordinates; 
} 

サード:

public RootObject GetLatLongByAddress(string address) 
{ 
    var root = new RootObject(); 

    var url =string.Format(
        "http://maps.googleapis.com/maps/api/geocode/json?address={0}&sensor=true_or_false", address); 
    var req = (HttpWebRequest)WebRequest.Create(url); 

    var res = (HttpWebResponse)req.GetResponse(); 

    using (var streamreader = new StreamReader(res.GetResponseStream())) 
    { 
     var result = streamreader.ReadToEnd(); 

     if (!string.IsNullOrWhiteSpace(result)) 
     { 
      root = JsonConvert.DeserializeObject<RootObject>(result); 
     } 
    } 
     return root; 
}  

そして、私のアドレス文字列が「階、Nishikaアベニュー、スワスティックシャアラスタ、Navrangpuraあり、ナルナヤンコンプレックス、アーマダバードの向かい "

私はすべてを試しましたが、とにかく私に緯度と経度を与えません。

私はそれは緯度/長い私を与えるのです、私のアドレス文字列(すなわちNavrangpura、反対側Narnarayanコンプレックス、アーメダバード)の最初の部分を削除してみてください。

しかし、フルアドレスでGoogle Mapを検索すると結果が表示されます。

なぜそうですか?何か不足していますか?

答えて

0

アドレス「階、Nishikaアベニュー、スワスティックシャアラスタ、Navrangpura、反対側Narnarayanコンプレックス、アーメダバードは」同様maps.google.comで見つけることができません

enter image description here

APIは、何かを見つけることができません存在しない。あなたはmaps.google.comを経由してこの場所を追加したり、より良い

https://developers.google.com/maps/faq#geocoder_queryformat

はそれが役に立てば幸い、次の住所の文字列をフォーマットする必要があります!

+0

ご回答いただきありがとうございますが、Googleマップでご利用いただけるようになっておりますので、 –

関連する問題