2017-04-24 100 views
1

我正在从反馈小册子切换到mapbox-gl,并对我用于空间数据的专有瓷砖服务有个疑问。这个API几乎没有文档。他们提供了4种不同的方式来请求瓷砖。如何将tile源实现为mapbox-gl

DRAW MAP TILE - PNG地图瓦片具有透明背景根据以像素为单位的图像尺寸,以十进制度的纬度经度边界框,选择层(S)和默认样式被创建。请参阅个别功能以获取样式名称的完整列表。

绘制静态图TILE - 根据图像大小以像素为单位,以十进制度为单位的纬度坐标,缩放级别,选定图层和默认样式创建具有透明背景的PNG地图图块。请参阅个别功能以获取样式名称的完整列表。

BING NON CACHE - 根据Bing Maps API Quadkey,选定图层和默认样式创建具有透明背景的PNG地图图块。请参阅个别功能以获取样式名称的完整列表。

GOOGLE NON CACHE - 根据Google Maps API X,Y和缩放值,选定图层和默认样式创建具有透明背景的PNG地图图块。请参阅个别功能以获取样式名称的完整列表。

对于单张我用谷歌的端点插件“反应小叶,谷歌”

_coreLogic =() => { 
    const {authKey} = this.props 
    const baseUrl = 'http://sws.corelogic.com/api/v3.0.0/tile/gmap?' 
    const zoom = this._map.getZoom() 
    const type = 'layers=fass%3Aparcel&styles=parcelpolygonorange' 
    this.setState({coreLogicUrl: `${baseUrl}x={x}&y={y}&zoom=${zoom}&${type}&authKey=${authKey}`}) 
    } 

    <LayersControl.Overlay checked name='CoreLogic Parcel'> 
    <LayerGroup> 
     <TileLayer url={coreLogicUrl} /> 
    </LayerGroup> 
    </LayersControl.Overlay> 

的伟大工程。切换到mapbox-gl有点混乱。我不确定它是否是栅格,矢量或图像层。我盲目地尝试了不同的方式,但没有运气。 api有一个使用apis的演示。

这里是什么

DRAW地图瓦片

模样。

First option

http://sws.corelogic.com/api/v3.0.0/map?width=500&height=500&layers=fass%3Aparcel&styles=parcelpolygonorange&bbox=-74.025879%2C40.705628%2C-74.014893%2C40.713956&authKey=0x7Y0z3K8dnC79y0HwAAtXNUNHHit

而第二个选项

DRAW静态地图TILE

看起来像

second option

http://sws.corelogic.com/api/v3.0.0/map?width=600&height=600&layers=fass%3Aparcel&styles=parcelpolygonorange&lat=40.709792&lon=-74.020386&zoom=15&authKey=0x7Y0z3K8dn

回答

1

你可能需要一个raster tile source。 Mapbox仅支持x/y/z瓦片坐标(不是lat-longs或Bing quadkeys)给出的光栅图块,因此排除前三个选项,仅留下Google NON CACHE PNG API端点。

您的代码看起来类似:

map.addSource('tiles', { 
    type: 'raster', 
    tiles: ['BASEURL/x={x}&y={y}&zoom=${z}&TYPEANDAUTHKEYANDSTUFF'] 
}); 

你使用似乎并没有成为网络上找到的API,所以我不能比这更具体。