MFC之 MapWinGis叠加高德瓦片地图

 1、核心代码

/**************************************************************************************
 * Project: MapWindow Open Source (MapWinGis ActiveX control) 
 **************************************************************************************
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * (the "License"); you may not use this file except in compliance with 
 * the License. You may obtain a copy of the License at http://www.mozilla.org/mpl/ 
 * See the License for the specific language governing rights and limitations
 * under the License.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 ************************************************************************************** 
 * Contributor(s): 
 * (Open source contributors should list themselves and their modifications here). */
  
#pragma once
#include "BaseProvider.h"

class ABaseProvider: public BaseProvider
{
public:
	ABaseProvider() 
	{
		LanguageStr = "zh_cn";
		RefererUrl = "http://ditu.amap.com/";
		LicenseUrl = "https://mapwingis.codeplex.com/wikipage?title=baidutiles";
		int year = Utility::GetCurrentYear();
		Copyright.Format(L"Copyright @ %d, 高德,All Rights Reserved", year);
		this->Projection = new MercatorProjection();
		this->minZoom = 3;
		this->maxZoom = 18;
	}
	
	CString MakeTileImageUrl(CPoint &pos, int zoom)
	{
		CString s;
		CString sec = "0";
		int iServerNum = GetServerNum(pos, 4)+1;
		s.Format(UrlFormat, sec, iServerNum, pos.x, pos.y, zoom, LanguageStr);
		return s;
	}
};

class AMapProvider: public ABaseProvider
{
public:
	AMapProvider() 
	{
		Id = tkTileProvider::AMaps;
		Name = "AMaps";
		UrlFormat = "http://webrd%s%d.is.autonavi.com/appmaptile?x=%d&y=%d&z=%d&lang=%s&size=1&scale=1&style=8";
		subProviders.push_back(this);
	}
};

class ASatelliteProvider: public ABaseProvider
{
public:
	ASatelliteProvider() 
	{
		Id = tkTileProvider::ASatellite;
		Name = "ASatellite";
		UrlFormat = "http://webst%s%d.is.autonavi.com/appmaptile?x=%d&y=%d&z=%d&lang=%s&size=1&scale=1&style=6";
		subProviders.push_back(this);
	}
};

class ASatelliteHybridProvider: public ABaseProvider
{
public:
	ASatelliteHybridProvider() 
	{
		Id = tkTileProvider::ASatelliteHybrid;
		Name = "ASatelliteHybrid";
		UrlFormat = "http://webst%s%d.is.autonavi.com/appmaptile?x=%d&y=%d&z=%d&lang=%s&size=1&scale=1&style=8";
		subProviders.push_back(this);
	}
};

2、效果图

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值