我通过在传单中创建 GeoJSON 图层来为地图上的区域着色。首先我创建一个空层:
var layerPostalcodes=L.geoJSON().addTo(map);
Run Code Online (Sandbox Code Playgroud)
然后,我创建一个包含形状信息的 geojson 元素并将其添加到图层中:
layerPostalcodes.addData(geojson);
Run Code Online (Sandbox Code Playgroud)
这将正确显示地图上的区域。现在,单击按钮我想从地图上删除所有形状。这是行不通的。我尝试了几种方法:
layerPostalcodes.clearLayers();
Run Code Online (Sandbox Code Playgroud)
或者通过 LayerGroup,向其中添加 GeoJSON 层,以便我可以使用removeLayer()。但是,这甚至不显示形状,更不用说删除它们了。
var layerGroup = new L.LayerGroup();
layerGroup.addLayer(layerPostalcodes);
layerGroup.addTo(map);
layerGroup.removeLayer(layerPostalcodes);
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我在 Azure 数据工厂 (v2) 中有一个字符串变量,我想从中删除最后 3 个字符。最初我以为使用子字符串操作,它需要startIndex和length参数。然而,startIndex 可能会有所不同,因为字符串没有固定长度。关于如何解决这个问题有什么建议吗?
例如,删除最后 3 个字符,字符串长度不同:
'abcdef' -> 'abc'
'helloworld' -> 'hellowo'
'2020_18' -> '2020'
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Leaflet 创建地图并在地图上显示标记。有没有人对我在地图上显示标记时收到的以下错误有任何想法?
我可以启动页面的地图加载:
var map;
var ajaxRequest;
var plotlist;
var plotlayers=[];
function initmap() {
// set up the map
map = new L.Map('map');
// create the tile layer with correct attribution
var osmUrl='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
var osmAttrib='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
var osm = new L.TileLayer(osmUrl, {minZoom: 8, maxZoom: 20, attribution: osmAttrib});
// start the map over Holland
map.setView(new L.LatLng(52.36994, 4.90788),8);
map.addLayer(osm);
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个标记:
var marker=L.marker([52.63275, 4.75175]).bindPopup('testmarker');
Run Code Online (Sandbox Code Playgroud)
将标记添加到地图时,出现错误“Uncaught TypeError: Cannot read property 'addLayer' of undefined”:
marker.addTo(map);
Run Code Online (Sandbox Code Playgroud)
当在 initmap() 函数中包含这一行时,它工作正常。所以看起来地图实例是不可访问的还是函数之外的东西?哪个很奇怪,因为变量是在脚本开始时在函数之外创建的?
谢谢!