非Bing地图的地图控件

时间:2014-04-16 10:08:07

标签: c# windows-phone-7 bing-maps

我想将OpenStreetMap地图放入我的Windows Phone 7.5应用程序中。我想使用

中的地图控件
xmlns:my="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps"

我已创建自定义TileSource

public class OSMTileSource : TileSource
{
    private const string OSMUriFormat = "http://{0}.tile.openstreetmap.org/{1}/{2}/{3}.png";

    public OSMTileSource()
    {
        this.UriFormat = OSMUriFormat;
    }

    private readonly static string[] TilePathPrefixes = new[] { "a", "b", "c" };

    public override Uri GetUri(int x, int y, int zoomLevel)
    {
        if (zoomLevel > 0)
        {
            var url = string.Format(UriFormat, TilePathPrefixes[y % 3], zoomLevel, x, y);
            return new Uri(url);
        }

        return null;
    }

}

不幸的是,控件要求我提供Bing身份验证密钥(尽管我没有使用BING地图!)。我不想创建Bing开发者帐户,我不需要我不想使用Bing地图。 是否有任何解决方案?或者是否有允许使用OSM的替代品?

1 个答案:

答案 0 :(得分:0)

身份验证用于使用地图控件和地图数据。使用Open Street Maps替换Bing Maps数据违反了使用条款。看看这里的点3.2p:http://www.microsoft.com/maps/product/terms.html这就是为什么你不能在没有身份验证的情况下使用地图控件。

至于商业许可。如果这是面向公众的应用程序,Bing Maps为Windows Phone应用程序提供了非常慷慨的免费使用条款,允许您在24小时内生成50,000笔交易。这比大多数应用程序需要的更多。如果这是一个内部业务应用程序,那么您可以免费使用每年125,000笔交易。如果您的应用超出了免费使用条款的限制,那么您需要支付Bing Maps许可证。