Oddly, finding an address from given coordinates is not as straightforward as it first appears. The key seems to be to use the SearchManager.
SearchManager
The following is a typescript implementation that will populate an input element called myLocationText:
function GetMap(position): void {
map = new Microsoft.Maps.Map(
document.getElementById('map'),
{ credentials: "MyKey" });
Microsoft.Maps.loadModule('Microsoft.Maps.Search', function () {
var searchManager = new Microsoft.Maps.Search.SearchManager(map);
var location = new Microsoft.Maps.Location(position.latitude, position.longitude);
var mapOptions = {
center: location,
mapTypeId: Microsoft.Maps.MapTypeId.aerial,
zoom: 10,
showScalebar: false
}
var reverseGeocodeRequestOptions = {
location: location,
callback: function (answer, userData) {
map.setView(mapOptions);
var myLocation = <HTMLInputElement>document.getElementById('myLocationText');
myLocation.value = answer.address.formattedAddress;
}
}
searchManager.reverseGeocode(reverseGeocodeRequestOptions);
});
If you want to get it to show your current location, then try this:
function findMe(position) : void {
var latlong = new Microsoft.Maps.Location(position.coords.latitude,
position.coords.longitude);
GetMap(latlong);
}
References
http://www.bing.com/api/maps/sdkrelease/mapcontrol/isdk#searchByPoint+JS
http://bingmapsv8samples.azurewebsites.net/#Calculate%20Distance%20From%20Route
https://www.nuget.org/packages/Microsoft.BingMaps.V8.TypeScript/