我正在使用mapbox.js处理地图,但我想设置一个限制来映射边界和缩放.我要在这个脚本中添加什么代码?
var map = L.mapbox.map('map', 'examples.map-9ijuk24y').setView([40, -74.50], 9);
Run Code Online (Sandbox Code Playgroud) 我正在尝试禁用缩放并在地图框中平移mapview.我使用mapbox 0.4.0.目前我可以禁用缩放,但无法禁用平移
MapView mv = (MapView) tab.findViewById(R.id.mapid);
mv.setZoom(14);
mv.setMaxZoomLevel(14);
mv.setMinZoomLevel(14);
Run Code Online (Sandbox Code Playgroud) 我正在尝试将传单映射添加到我的网页,我正在使用Mapbox磁贴.我无法让基本教程中的地图工作,我所看到的只是一个灰色屏幕.我有一个来自mapbox的mp id,我已将它添加到我的代码中.附上以下相关代码.
var map = L.map('map').setView([51.505, -0.09], 13);
L.tileLayer('http://{s}.tiles.mapbox.com/v3/rakshak.l937n12c/{z}/{x}/{y}.png', {
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
maxZoom: 18
}).addTo(map);
Run Code Online (Sandbox Code Playgroud)
这就是我在控制台中看到的:
GET http://a.tiles.mapbox.com/v4/rakshak.l937n12c/13/4093/2723.png 401 (Unauthorized)
Run Code Online (Sandbox Code Playgroud)
在css我刚刚将地图高度设置为高度:100vh.
我在屏幕上看到的只有地图变焦控制器和灰色屏幕.我错过了一个重要的步骤吗?
编辑1:更新JS代码:
var map = L.map('map').setView([51.505, -0.09], 13);
L.tileLayer('http://api.tiles.mapbox.com/v4/rakshak.l937n12c/{z}/{x}/{y}.{format}?access_token=pk.eyJ1IjoicmFrc2hhayIsImEiOiJ5cHhqeHlRIn0.Vi87VjI1cKbl1lhOn95Lpw', {
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
maxZoom: 18
}).addTo(map);
Run Code Online (Sandbox Code Playgroud) 我正在开发一个应用程序,我试图在地图上运行一些算法并计算坐标,但它们略有偏差,因为我正在对纬度和经度进行计算并且最终结果被扭曲。
现在我正在尝试将所有坐标转换为 EPSG3857 Web 墨卡托坐标,如下所示:
var crs = L.CRS.EPSG3857;
var zoom = terrainAnalysisMap.getZoom();
markerToPoint = crs.latLngToPoint(marker.getLatLng(), zoom);
markerOnRadiusToPoint = crs.latLngToPoint(markerOnRadius.getLatLng(), zoom);
Run Code Online (Sandbox Code Playgroud)
现在我还有一个半径,我必须将其从米转换为像素,但我不知道如何转换。1米的像素是多少?我的意思是它也取决于缩放级别,对吗?那么如何将半径转换为地图框和传单中的像素呢?
我对MapBox中的Tiles有点困惑.据我所知,瓷砖是一块地图,就像拼图一样.
MBTiles是图像,但它们连接到数据库以读取数据并允许交互.因此,如果我移动鼠标,我可以显示光标下的图层的详细信息.
Vector Tiles将所有数据存储在矢量中,它们仅用于快速渲染图像.不可能与这些数据进行交互.
我错了吗?
现在,我看到有MBTiles的工具TileMill和VectorTiles的MapBox Studio Classic.我猜他们是出于不同的目的; 第一个用于交互式地图,后者用于快速渲染.那么....为什么TileMill 不再受支持,支持MBStudio?是否可以使用MBStudio制作交互式地图?
谢谢
我正在将一个Web应用程序从Mapbox.js重写为Mapbox GL js.使用标准的'mapbox:// styles/mapbox/streets-v8'样式,在哪里可以找到所有工作标记图标的列表?
这是我的代码:
m.map.addSource("markers", {
"type": "geojson",
"data": {
"type": "FeatureCollection",
"features": {
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": ["-75.532965", "35.248018"]
},
"properties": {
"title": "Start",
"marker-symbol": "entrance",
"marker-size": "small",
"marker-color": "#D90008"
}
}
}
});
m.map.addLayer({
"id": "markers",
"type": "symbol",
"source": "markers",
"layout": {
"icon-image": "{marker-symbol}-15", //but monument-15 works
"text-field": "{title}",
"text-font": ["Open Sans Semibold", "Arial Unicode MS Bold"],
"text-offset": [0, -1.6],
"text-anchor": "top"
}
});
Run Code Online (Sandbox Code Playgroud)
我读到所有Maki图标都应该用于没有图标作为默认值的样式:https: //github.com/mapbox/mapbox-gl-styles/issues/241 但是大多数都不起作用.另外还有尺寸问题 - 对于Maki来说,他们是小型,中型和大型,现在我看到了-11和-15.
我只需要使用一些基本的标记图标.
我一直在寻找MapBox GL中的聚类标记(https://www.mapbox.com/mapbox-gl-js/example/cluster/),但我希望这样做有点不同.
从本质上讲,我有一个geojson文件,其中包含我们校园内每栋建筑物(点)的事件数.我想在标记中显示该数字,然后当缩小时,标记会折叠并将该标记的值添加到一起.
我看到的聚类示例只是计算点数,但似乎没有提供聚合属性.这样的事情可行吗?
我试图让我的Xamarin应用程序中的MapBox组件工作.
起初我只是在我的Android项目的引用中引用了一个mapbox.dll.使用该方法,当试图给包含mapbox的布局充气时,应用程序会崩溃.
我取消引用mapbox.dll并将mapbox组件添加到我的Android项目中,希望它能解决我的问题.但是,在编译时我现在收到此错误:
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets: Error: java.lang.IllegalArgumentException: already added : Lokio/AsyncTimeout; (IM.Droid)
Run Code Online (Sandbox Code Playgroud)
我已取消引用以前的mapbox.dll,删除它,清理,删除所有obj和bin目录...仍然得到相同的错误.
任何帮助,将不胜感激.
我正在使用Mapbox GL JS来显示多边形图层.我想允许用户从下拉列表中选择一个名称,然后突出显示并缩放到匹配的多边形.
我已经知道如何突出显示匹配的多边形map.setFilter,但我不知道如何缩放到匹配多边形的边界.这是我目前的代码:
map.addLayer({
'id': 'polygon_hover',
'source': 'mysource',
'source-layer': 'mylayer',
'type': 'fill',
'paint': {
'fill-color': 'red',
"fill-opacity": 0.6
},
"filter": ["==", 'CUSTNAME', ""]
});
// Get details from dropdown
custname.on("change", function(e) {
// get details of name from select event
map.setFilter('polygon_hover', ["==", 'CUSTNAME', name]);
// Get bounds of filtered polygon somehow?
// var bounds = ??;
// map.fitBounds(bounds);
});
Run Code Online (Sandbox Code Playgroud)
我已经检查了缩放到边界的Mapbox示例,但它假设您已经知道边界是什么.
有没有办法可以在Mapbox中获得与地图过滤器匹配的多边形边界?
这是一个代码,我试图显示每个点的车速.
import plotly.plotly as py
from plotly.graph_objs import *
mapbox_access_token = 'MAPBOX API KEY'
data = Data([
Scattermapbox(
lat=dataframe_monday_morning['latitude'],
lon=dataframe_monday_morning['longitude'],
mode='markers',
marker=Marker(
size=5,
color =dataframe_monday_morning['speed'],
colorscale= 'YlOrRd',
#opacity=0.3,
symbol = 'circle',
),
)
])
layout = Layout(
autosize=True,
hovermode='closest',
width=1300,
margin=go.Margin(
l=0,
r=0,
b=0,
t=0
),
height=700,
mapbox=dict(
accesstoken=mapbox_access_token,
bearing=0,#
center=dict(
lat=-36.7526,
lon=174.7274
),
pitch=0,
zoom=16.2,
style='dark',
),
)
fig = dict(data=data, layout=layout)
py.iplot(fig, filename='Multiple Mapbox')
Run Code Online (Sandbox Code Playgroud)
但是当我尝试
color =dataframe_monday_morning['speed']
Run Code Online (Sandbox Code Playgroud)
代码选择当前数据最小和最大速度然后给我一个图表.在数据中,一些速度数据间隙非常大,所以我想在我的速度值之间创建一个色标.(例如,如果您选择最高速度200公里/小时,您的其他30公里/小时和90公里/小时看起来颜色相似,但通常速度通常不同)
我的问题是如何创建一个用于选择速度颜色的比例?
编辑:
这是我编辑的数据示例.
13 1.464301e+10 2015-11-15 18:28:50 191 10051 76 …Run Code Online (Sandbox Code Playgroud)