非必应地图的地图控件

本文关键字:地图 控件 | 更新日期: 2023-09-27 17:58:30

我想在我的Windows Phone 7.5应用程序中放入一个OpenStreetMap映射。我想使用的地图控制

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的替代品?

非必应地图的地图控件

身份验证用于使用映射控件和映射数据。将必应地图数据替换为开放式街道地图是违反使用条款的。看看这里的3.2便士:http://www.microsoft.com/maps/product/terms.html这就是为什么没有身份验证就不能使用地图控件的原因。

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