使用 bing 地图 API,我可以进行服务器端调用并获取给定城市的纬度/经度吗?
我可以使用 JavaScript 在客户端执行此操作,但在这种情况下我需要更健壮的东西并且想要使用服务器端。
发布此内容,以便更轻松地为每个人找到答案:
使用 Bing 地图 SOAP 服务 API ( http://msdn.microsoft.com/en-us/library/cc980922.aspx )。它是一个公共 Web 服务,它实现了大部分 Bing Maps API 并提供静态地图(抱歉,没有来自用户的交互性)。从提供的 Microsoft SDK(稍作修改:将服务引用添加到您的项目后,运行此代码:
私人 GeocodeResponse GeocodeAddress(string address) { GeocodeRequest geocodeRequest = new GeocodeRequest();
// Set the credentials using a valid Bing Maps key
geocodeRequest.Credentials = new GeocodeService.Credentials();
geocodeRequest.Credentials.ApplicationId = BingMapsAPIKey;
// Set the full address query
geocodeRequest.Query = address;
// Set the options to only return high confidence results
ConfidenceFilter[] filters = new ConfidenceFilter[1];
filters[0] = new ConfidenceFilter();
filters[0].MinimumConfidence = GeocodeService.Confidence.High;
// Add the filters to the options
GeocodeOptions geocodeOptions = new GeocodeOptions();
geocodeOptions.Filters = filters;
geocodeRequest.Options = geocodeOptions;
// Make the geocode request
GeocodeServiceClient geocodeService = new GeocodeServiceClient("BasicHttpBinding_IGeocodeService");
GeocodeResponse geocodeResponse = geocodeService.Geocode(geocodeRequest);
return geocodeResponse;
}
您可以使用以下代码片段检查您的返回值:
result.Locations[0].Latitude.ToString();
result.Locations[0].Longitude.ToString();