通过右键点击地图(Bing或Google)获取位置

时间:2013-06-20 08:59:29

标签: google-maps bing-maps

这真让我烦恼不已。我很确定这可以做到,但对于我的生活,我找不到任何关于此的文件。

所以经常我去谷歌地图,我想要做的就是获取一个地点的地址,而不是“从这里到这里的方向”,直到最近我才发现bing地图具有右键单击的功能。

但是现在我希望使用他们的api将此功能集成到应用程序中。我已经浏览了文档和sdk沙箱,以及谷歌的playgound编码器沙箱,我仍然没有找到这个功能。 Bing确实有一个方法getlocation();但这是为了lat和long而我正在寻找实际的地址。

我不知道,但这似乎是地图服务的基本功能。

1 个答案:

答案 0 :(得分:1)

Bing有鼠标右键单击的事件。 因此,您可以在地图上获得此点击的pixelX,pixelY坐标(红色矩形)。

您可以在此处看到:http://www.bingmapsportal.com/isdk/ajaxv7#AttachMapEvents3

enter image description here 然后通过使用变换函数,您可以获得纬度和经度。 虽然“levelOfDetail”属性是地图的缩放(但我对此不感兴趣)。

   public static void PixelXYToLatLong(int pixelX, int pixelY, int levelOfDetail)
        {
            double mapSize = MapSize(levelOfDetail);
            double x = (Clip(pixelX, 0, mapSize - 1) / mapSize) - 0.5;
            double y = 0.5 - (Clip(pixelY, 0, mapSize - 1) / mapSize);

            latitude = 90 - 360 * Math.Atan(Math.Exp(-y * 2 * Math.PI)) / Math.PI;
            longitude = 360 * x;
        }

您可以在此处看到这些转换的文档:

http://msdn.microsoft.com/en-us/library/bb259689.aspx