2012-03-05 2 views
1

2つのテキストボックスに緯度と経度の値を表示するには、ユーザーが住所を市区町村、都道府県、郵便番号として入力する必要があります。私はGoogleのジオコーダを使用しています。google geo coderを使用して入力アドレスの緯度と経度を取得するにはどうすればよいですか?

私は、ボタンをクリックしたときに、次のコードを使用している:私はこれをどのように行うことができます

"Object reference not set to an instance of an object." 

エラーを

protected void BtnShow_Click(object sender, EventArgs e) 
    { 
     GetLatLongFromAddress(TxtStreet.Text, TxtCity.Text, TxtZipcode.Text, TxtState.Text); 
    } 

    private void GetLatLongFromAddress(string street, string city, string zipcode, string state) 
    { 

     string geocoderUri = string.Format(@"http://maps.googleapis.com/maps/api/geocode/xml?address={0},{1},{2},{3}&sensor=false", street, city, zipcode, state); 


     XmlDocument geocoderXmlDoc = new XmlDocument(); 
     geocoderXmlDoc.Load(geocoderUri); 

     XmlNamespaceManager nsMgr = new XmlNamespaceManager(geocoderXmlDoc.NameTable); 
     nsMgr.AddNamespace("geo", @"http://www.w3.org/2003/01/geo/wgs84_pos#"); 


     string sLong = geocoderXmlDoc.DocumentElement.SelectSingleNode(@"geo:long", nsMgr).InnerText; 
     string sLat = geocoderXmlDoc.DocumentElement.SelectSingleNode(@"//geo:lat", nsMgr).InnerText; 

     TxtLatitude.Text = sLat; 
     TxtLongitude.Text = sLong; 
    } 

をしかし、それはNULLとしてSLONG変数の値を取得し、表示さ?

答えを待っている

...

thnks ..私は優秀のGoogleマップコントロールを使用していますそのために

+0

@AakashM - 返信いただきありがとうございます。ええ、私はそれを読んだ。しかし、私は何も考えていませんでした。どのように私はそれを使用することができ、どのヘッダファイルを含める必要がありますか? – Rohan

答えて

2

、ここでは詳細を参照してください。このリンクを

http://googlemap.codeplex.com/wikipage?title=Google%20Geocoder&referringTitle=Documentation

をあなたは例を持っていますサーバー側での使用の場合はクライアントからも使用できますが、この例ではGeoCoder APIを使用して地名に基づいて地図上に場所を配置しています。

function DoMapSearch(placeName) { 
    var geocoder = new GClientGeocoder(); 
    geocoder.getLatLng(placeName, function (point) { 
     if (point != null) { 
     GoogleMapCnt.loadAddress(addr); 
     } 
    }); 

    return false; 
    } 
+0

返信ありがとうございます。私はあなたが示唆したようにGoogleMapを読んでいます。それはガードです。しかし、Artem.GoogleGeocodingへの参照を追加するにはどうすればいいですか? – Rohan

+1

http://googlemap.codeplex.com/releases/view/52051からバイナリをダウンロードし、プロジェクトに参照として追加してください –

+0

もう一度ご協力いただきありがとうございます。私はリリースとビルドの両方のファイルをダウンロードする必要があります。 ?プロジェクトに両方のファイルを追加する必要がありますか? – Rohan

0

私はあなたのコードを使用すると、エラーは、XPathにあった、私はすべてが今、正常に動作しているこの

string sLong = geocoderXmlDoc.DocumentElement.SelectSingleNode(@"//geometry/location/lat", nsMgr).InnerText; 

string sLat = geocoderXmlDoc.DocumentElement.SelectSingleNode(@"//geometry/location/lng", nsMgr).InnerText; 

にそれを変更しました。