我使用传单和图块制作了离线地图。这些图块不包含国家边界或州边界。我想将所有国家边界和州边界添加到这些图块中。这是构建地图的代码。
var map = L.map('map').setView([33.705, -84.3900], 4);
L.tileLayer('tiles/{z}/{x}/{y}.png', {
attribution: '© <a>ABC</a>',
maxZoom: 11,
minZoom: 4
}).addTo(map);
map.attributionControl.setPrefix('');
var london = new L.LatLng(51.505, -0.09);
map.addLayer(london);
这是没有任何边框线的地图图块。如何使用传单添加边框图层。
我希望输出看起来像
答案 0 :(得分:2)
首先,您将需要定义“边界图层”的点的纬度/经度对。如果你有geoJSON格式的那些点,那将是最好的。获得该数据后,您可以迭代这些点并连接它们并创建一个图层。
var states = [{
"type": "Feature",
"properties": {"party": "Republican"},
"geometry": {
"type": "Polygon",
"coordinates": [[
[-104.05, 48.99],
[-97.22, 48.98],
[-96.58, 45.94],
[-104.03, 45.94],
[-104.05, 48.99]
]]
}
}, {
"type": "Feature",
"properties": {"party": "Democrat"},
"geometry": {
"type": "Polygon",
"coordinates": [[
[-109.05, 41.00],
[-102.06, 40.99],
[-102.03, 36.99],
[-109.04, 36.99],
[-109.05, 41.00]
]]
}
}];
L.geoJson(states, {
style: function(feature) {
switch (feature.properties.party) {
case 'Republican': return {color: "#ff0000"};
case 'Democrat': return {color: "#0000ff"};
}
}
}).addTo(map);
当然,这些点需要进行逻辑分组,因此您可以连接正确的点。请务必查看此链接http://leafletjs.com/examples/choropleth.html