我是开发人员。我从Citymaps的SDK应用程序开始。 我从这里读到:http://developer.citymaps.com/layers#data-layer 但是,SDK版最新不支持这样,我写的如下:
DataTileSource tileSource = DataTileSource.createFromURL("http://vector.mapzen.com/osm/all/{zoom}/{x}/{y}.json”);
// Initialize the layer
TileLayerOptions optionsTiles = new TileLayerOptions(tileSource);
DataTileLayer dataLayer = new DataTileLayer(optionsTiles);
// Object implementing the interface
DataTileLayerListener dataLayer.setListener(this);
// Add the layer to the map
mapView.setBaseLayer(dataLayer);.
使用接口“DataTileLayerListener”我监听器事件“onTileLoaded”并且它打印到记录器“工作”...但是Tiles地图不显示在View上。
你帮我吗?非常感谢!答案 0 :(得分:0)
我是Citymaps地图团队的主要开发人员之一,我很乐意帮助解决您的问题。
我认为您对DataTileLayer的功能感到困惑。数据层实际上没有任何特定的解析或呈现行为。它们只是将数据返回到客户端应用程序。客户端必须处理该数据的任何解析或呈现。此外,数据层不会为您管理数据,因此如果您在磁贴开启或关闭时都应添加或删除功能,则客户端也可以自行处理。
我快速查看了您要解析的数据。它似乎正在返回一个GeoJSON数据集。如果您编写GeoJSON解析器(此时,Citymaps未附带此功能),则可以使用CanvasLayer呈现这些功能。您可以在此处阅读有关CanvasLayer的更多信息:http://developer.citymaps.com/canvas
我建议使用Citymaps矢量图层,而不是将Mapzen的矢量图块用作基础图层,您可以通过初始化CitymapsMapView来使用它。但是,这确实需要API密钥。如果您需要API密钥,请按照此处的说明操作:http://developer.citymaps.com/getting-started#apikey