问题描述
我希望能够检索给定地址的地理坐标(纬度和经度)。如果我有完整的地址(街道地址 + 城市 + 州 + 邮政编码),我希望我能做到这一点。
如果有关系,我正在使用 Bing 地图。我得到的骨架代码是这样的(fullAddress、Addpushpin() 和 getGeoCordsForAddress() 是最相关的部分):
sub
解决方法
Microsoft 有一个官方 BingMapsRESTToolkit,可帮助您轻松使用 Bing Maps REST Services。为此,您需要安装 BingMapsRESTToolkit NuGet Package。
在这里,您对 GeocodeRequest 感兴趣以按地址获取位置。
示例 - 按地址获取纬度和经度并在地图上创建图钉
安装 BingMapsRESTToolkit NuGet 包并运行以下代码:
private async void button1_Click(object sender,EventArgs e)
{
var request = new GeocodeRequest();
request.BingMapsKey = "YOUR MAP KEY";
request.Query = "172 Jalan Pinang,50088 Kuala Lumpur," +
"Federal Territory of Kuala Lumpur,Malaysia";
//OR
//request.Address = new SimpleAddress()
//{
// CountryRegion = "Malaysia",// AddressLine = "172 Jalan Pinang",// AdminDistrict = "Kuala Lumpur,Federal Territory of Kuala Lumpur",// PostalCode = "50088",//};
var result = await request.Execute();
if (result.StatusCode == 200)
{
var toolkitLocation = (result?.ResourceSets?.FirstOrDefault())
?.Resources?.FirstOrDefault()
as BingMapsRESTToolkit.Location;
var latitude = toolkitLocation.Point.Coordinates[0];
var longitude = toolkitLocation.Point.Coordinates[1];
var mapLocation = new Microsoft.Maps.MapControl.WPF.Location(latitude,longitude);
this.userControl11.myMap.SetView(mapLocation,15);
var p = new Pushpin() { Location = mapLocation,ToolTip = "KLCC Park" };
this.userControl11.myMap.Children.Add(p);
}
}
如何在 Windows 窗体中使用 WPF Bing 地图:
Bing Maps REST Toolkit 相关资源: