使用JS文件将首都城市标记添加到传单地图



我在一张传单地图上创建了一个图层,并有一个capitalCities.js文件,我想用它来给地图添加标记(下面是capitalCities文件的摘录)。

let capitals = [{"CountryName":"Somaliland","CapitalName":"Hargeisa","CapitalLatitude":"9.55","CapitalLongitude":"44.050000","CountryCode":"NULL","ContinentName":"Africa"},{"CountryName":"South Georgia and South Sandwich Islands","CapitalName":"King Edward Point","CapitalLatitude":"-54.283333","CapitalLongitude":"-36.500000","CountryCode":"GS","ContinentName":"Antarctica"},{"CountryName":"French Southern and Antarctic Lands","CapitalName":"Port-aux-Français","CapitalLatitude":"-49.35","CapitalLongitude":"70.216667","CountryCode":"TF","ContinentName":"Antarctica"},

做这件事最好的方法是什么?我在想类似下面的ajax请求,但我如何将其传递到传单层映射?我在JS文件的顶部声明下面的内容,但我想我已经看了太久了:

让capitalCityLat;让capitalCityLon;

和ajax请求看起来像下面,但我现在被难住了。

$.ajax({
url: "js/capitalCities.js",
type: 'POST',
dataType: 'json',
data: {
capital: $('CapitalLatitude', 'CapitalLongitude' ).val()   
},
success: function(result) {

任何帮助或指导将非常感激。

谢谢

在传单地图中添加标记的最简单方法如下:

L.marker([50.84673, 4.35247]).addTo(map);

在您的情况下,由于您试图在大写数组中的信息的基础上添加标记,您可能会这样做:

let capitals = [{"CountryName":"Somaliland","CapitalName":"Hargeisa","CapitalLatitude":"9.55","CapitalLongitude":"44.050000","CountryCode":"NULL","ContinentName":"Africa"},{"CountryName":"South Georgia and South Sandwich Islands","CapitalName":"King Edward Point","CapitalLatitude":"-54.283333","CapitalLongitude":"-36.500000","CountryCode":"GS","ContinentName":"Antarctica"},{"CountryName":"French Southern and Antarctic Lands","CapitalName":"Port-aux-Français","CapitalLatitude":"-49.35","CapitalLongitude":"70.216667","CountryCode":"TF","ContinentName":"Antarctica"}];

capitals.forEach(capital => {
L.marker([capital.CapitalLatitude, capital.CapitalLongitude]).addTo(map);
})

如果你担心从另一个文件访问大写数组,你可以在index.html中添加对该文件的引用作为<script src="js/capitals.js"></script>

并且capitals变量也可以在其他脚本中全局访问。

这里也有一个例子:https://codepen.io/dhruvs/pen/jOwVXKv

最新更新