标签: mapbox

我如何在Android上使用MapBox

如何在Android上显示MapBox图块?我尝试将它与OSMDroid一起使用,而Nutiteq则没有成功.MapBox有一个android库吗?

例如,我使用此代码在OSMDroid上实现MapBox:http://blog.spatialnetworks.com/post/2012/07/using-mbtiles-on-android-with-osmdroid

XYTileSource MBTILESRENDER = new XYTileSource("mbtiles", ResourceProxy.string.offline_mode, 1, 20, 256, ".png", "http://example.org/");
DefaultResourceProxyImpl mResourceProxy = new DefaultResourceProxyImpl(this.getApplicationContext());
SimpleRegisterReceiver simpleReceiver = new SimpleRegisterReceiver(this.getActivity());

File f = new File(Environment.getExternalStorageDirectory(), "mymbtilesfile.mbtiles");

IArchiveFile[] files = { MBTilesFileArchive.getDatabaseFileArchive(f) };

MapTileModuleProviderBase moduleProvider = new MapTileFileArchiveProvider(simpleReceiver, MBTILESRENDER, files);

MapTileProviderArray mProvider = new MapTileProviderArray(MBTILESRENDER, null, new     MapTileModuleProviderBase[] { moduleProvider });

this.mMapView = new MapView(this, 256, mResourceProxy, mProvider);
Run Code Online (Sandbox Code Playgroud)

但它没有用,我想直接从网上加载MbTiles.

android map mapbox

3
推荐指数
2
解决办法
1万
查看次数

当markerLayer通过loadURL函数加载时,在mapbox中更改标记颜色

我正在使用Mapbox loadURL函数加载markerLayer.这工作正常,我能够访问标记属性,但似乎不起作用的是改变标记的颜色.

var markerLayer = L.mapbox.markerLayer();
markerLayer.loadURL('geojson.php?lat='+lat+'&lng='+lng)
   .addTo(map);

markerLayer.on('click',function(e) {
    e.layer.unbindPopup();

    var feature = e.layer.feature;
    var info = '<h2>' + feature.properties.name + '</h2>' +
               '<p>' + feature.properties.description + '</p>';

    document.getElementById('info').innerHTML = info;

    feature.properties['old-color'] = feature.properties['marker-color'];
    feature.properties['marker-color'] = '#000';

});
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用,我将如何使用从URL加载的geoJson数据更改标记的颜色?该贴例子依赖于没有使用使用loadURL加载GeoJSON的数据.我怀疑这与标记颜色不变的原因有关.

javascript mapbox

3
推荐指数
1
解决办法
2305
查看次数

提供地图图块包供离线使用

我正在制作一个必须脱机工作的Web应用程序.到目前为止一切正常,我的最后一步是将地图图块脱机.幸运的是,我确切地知道用户需要访问地图的哪些区域,因此我不必允许缓存数百万个磁贴.

地图分为几个区域,因此我们的想法是将这些区域的图块作为可下载的"包"提供.

例如,当我在线时,我会转到"瓷砖包"页面,该页面提供了几个区域的下载.我选择了我感兴趣的区域,下载了瓷砖,当我离线时,我可以使用这些瓷砖.我只需要大约2个缩放级别,一个用于快速导航,另一个用于更多细节.

我正在使用传单来提供地图.有没有人不得不这样做,可以给我一些指导?我真的只是不知道如何接近这个,这是拼图的最后一块.

javascript openstreetmap leaflet mapbox

3
推荐指数
1
解决办法
3335
查看次数

在QGis中打开Mapbox地图

我正在寻找一种在QGis中显示我的Mapbox地图的方法(在mapbox.com上编辑的baselayer和从tilemill上传的数据).

这里有人找到了办法吗?是否有功能或插件可以做到这一点?

感谢您将来的答案!

阿德里安

qgis mapbox

3
推荐指数
1
解决办法
3078
查看次数

设置标注图像mapbox android

在iOS中,您可以通过调用以下内容轻松设置标记的标注:

[marker setCanShowCallout:YES];
[marker setRightCalloutAccessoryView:YOUR_BUTTON];
Run Code Online (Sandbox Code Playgroud)

但是我找不到Mapbox Android SDK的这个功能.我现在有一个侦听器,它可以检测到calloutview上的触摸但是如何设置一个标注图像/按钮?

Marker marker = new Marker(p.getTitle(), p.getCatagoryName(), new LatLng(p.getLatitude(), p.getLongitude()));
                        marker.setMarker(getResources().getDrawable(getResources().getIdentifier(string, "drawable", getActivity().getPackageName())));
                                mMapView.addMarker(marker);

                        InfoWindow toolTip = marker.getToolTip(mMapView);
                        View view = toolTip.getView();
                        // view.setBackgroundResource(R.drawable.callout_button); THIS DOES NOT WORK
                        view.setOnTouchListener(new View.OnTouchListener() {
                            @Override
                            public boolean onTouch(View view, MotionEvent motionEvent) {
                                Log.e(TAG, "onTouch");

                                return true;
                            }
                        });
Run Code Online (Sandbox Code Playgroud)

java android callouts mapbox

3
推荐指数
1
解决办法
1628
查看次数

在this.map.fitBounds之前预测缩放级别

我在我们的应用程序中使用mapbox.执行this.map.fitBounds(绑定值)将zoomout或zoomin映射到绑定指定值.我需要在调用this.map.fitBounds之前找出缩放级别(即在拟合边界之后的地图渲染).mapbox中有可用的方法吗?

leaflet mapbox

3
推荐指数
1
解决办法
2667
查看次数

Mapbox GL JS禁用滚动缩放

无法禁用Mapbox GL JS上的默认缩放滚动功能.API文档中没有任何内容可以阐明这一点.甚至错过了他们文档中的滚动事件.

var map = new mapboxgl.Map({
  container: 'map',
  style: 'mapbox://styles/mapbox/streets-v8',
  zoom: 15
});
Run Code Online (Sandbox Code Playgroud)

javascript mapbox

3
推荐指数
2
解决办法
1625
查看次数

如何在一个FeatureCollection中将多个geojson合并到一个geojson中

我有多个geojson类型:存储在Mysql中的FeatureCollection.我想将两个或更多geojson合并到一个FeatureCollection geojson并在我的地图中显示.我已经准备好了传单地图,可以很容易地在地图中显示.

我读到了Mapbox'geojson-merge',但我无法理解如何在我的js或PHP文件中使用api.

https://github.com/mapbox/geojson-merge

我在网上搜索它,但无法找到有关如何使用我的在线代码的任何指南.

php mysql geojson leaflet mapbox

3
推荐指数
1
解决办法
2207
查看次数

将坐标转换为屏幕上的像素(并再次返回)

这就是我正在做的事情: 点击地图上的标记打开侧面板并将地图置于标记的中心.侧面板占据屏幕右侧的3/4.

这就是我需要发生的事情: 根据面板打开后留下的视口的1/4使标记居中.

我可以获得标记的像素坐标,并在面板动画打开时计算它需要转换到的位置.问题是flyTo()只接受LngLatLike对象而我无法将我的像素坐标转换为纬度和经度.containerPointToLatLng()在切换到Mapbox GL之前,Leaflet.js有一个叫做派生的函数.

鉴于Mapbox GL的软化,尽管它有新意,我只能想象这是一种可能性.但是怎么样?

mapbox mapbox-gl mapbox-gl-js mapbox-marker

3
推荐指数
1
解决办法
4070
查看次数

如何为Mapbox注释创建自定义标注?

我已经尝试了几个小时。Mapbox网站上的材料仅显示以下内容:

func mapView(_ mapView: MGLMapView, calloutViewFor annotation: MGLAnnotation) -> MGLCalloutView? {
// Instantiate and return our custom callout view.
return CustomCalloutView(representedObject: annotation)
}
Run Code Online (Sandbox Code Playgroud)

问题在于,没有关于实现CustomCallout的“ CustomCalloutView”的详细说明。我理解(我认为)它的类实现了MGLCalloutView,但是创建一个正确实现该方法的类并不是一件容易的事,我遇到了各种各样的错误,尤其是围绕一个函数“ self”-> Self。

看到一个如何实际实现自定义标注的示例将非常高兴。对于像我这样的简单人来说,Mapbox Git上的所有对话都太复杂了。

annotations ios mapbox swift mapbox-gl

3
推荐指数
1
解决办法
1175
查看次数