0

私はc#.Netで働いています。私の要件は、パラメータとして指定された住所、都市、州、およびzipに基づいて、APIから緯度と経度を取得することです。

私は350店舗の詳細をExcelシートに入れています。当初、私はグーグルAPIを使用していました。

if (strAdd != "" && strCity != "" && strState != "" && strZip != "" && strStoreNo != "")
                {
                    Address = strAdd.Trim() + "," + strCity.Trim() + "," + strState.Trim() + "," + strZip.Trim();
                    string routeReqUrl = "http://maps.google.com/maps/geo?q={0}&output=xml&oe=utf8&sensor=true_or_false&key={1}";
                    string url = string.Format(routeReqUrl, Address.Replace(' ', '+'), "ABQIAAAA5rV-auhZekuhPKBTkuTC3hSAmVUytQSqQDODadyYeWY4ZYaVyRRv4thyrzzOQ7AMUl_hIjoG8LomGA");
                    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                    req.Method = "GET";
                    HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                    Stream respStream = resp.GetResponseStream();
                    XmlDocument xDoc = new XmlDocument();
                    xDoc.Load(respStream);
                    if (xDoc.GetElementsByTagName("coordinates")[0].InnerText.Contains(","))
                    {
                        string[] coordinates = xDoc.GetElementsByTagName("coordinates")[0].InnerText.Split(',');
                        string Latitude = coordinates[1];
                        string Longtitude = coordinates[0];

                        Logger.Log.Debug("[Latitude and Longitude] " + " Store - No " + strStoreNo + " Addr Line 1 " + strAdd + " Latitude " + Latitude + " Longitude " + Longtitude);
                    }
                }

上記のコードでは、緯度と経度の詳細を取得できるのは10〜15店舗程度です。その後、「(xDoc.GetElementsByTagName( "coordinates")[0].......」でオブジェクト参照エラーが発生します。

その後、yahoo apiを試してみましたが、350店舗の同じExcelシートを使用しています。

dsxml.ReadXml("http://where.yahooapis.com/geocode?appid=capelinks&location=" + Address + "&Geocode=Geocode");
                    if (dsxml.Tables[0].Rows.Count > 0)
                    {
                        if (dsxml.Tables[1].TableName == "Result")
                        {
                            string Latitude = dsxml.Tables[1].Rows[0]["Latitude"].ToString();
                            string Longtitude = dsxml.Tables[1].Rows[0]["Longitude"].ToString();
                            Logger.Log.Debug("[Latitude and Longitude] " + " Store - No " + strStoreNo + " Addr Line 1 " + strAdd + " Latitude " + Latitude + " Longitude " + Longtitude);
                        }
                    }

ここでは、350個すべてのプロセスがエラーなしで正しく保存されます。

グーグルAPIの問題は何になりますか。多数の店舗の緯度と経度の詳細を取得するための制限があるかどうか。

4

1 に答える 1

0

これが問題の例であるかどうかはわかりませんが、Google Geocoding API V2のドキュメントには、V2バージョンは現在非推奨であると記載されています。

注:Google Maps Geocoding APIバージョン2は、2010年3月8日をもって正式に廃止されました。V2APIは、2013年3月8日まで引き続き機能します。コードを新しいGeocodingAPIに移行することをお勧めします。

最新のGeocodingAPIV3に切り替えてみてください。覚えておくべきことの1つは、Googleの用語では、Googleマップのコンテキストで結果を表示している場合にのみこのサービスを許可することを示しています。

Yahooサービスがあなたが必要とするデータを提供しているなら、私はそれに固執するでしょう。

于 2012-12-19T20:12:26.987 に答える