/**************************************************************************************
* 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);
}
};