我想使用2个或更多json文件来生成标记(随着文件更短,更容易进行更改)。 这些文件在构造上是相同的,但是当我将它们添加到我的代码中时,我只能从最后一个获得详细信息。
我将数据重命名为var jsonsl和var jsonpm,但似乎无法将它们合并。
我能开始工作的代码就是这样,但一次只能在一个文件上运行。
<script type="text/javascript" src="js/mapping_1sl.js"></script>
<script type="text/javascript" src="js/mapping_1pm.js"></script>
var gmarkers = [];
function initialize() {
var latlng = new google.maps.LatLng(53.995391,-3.795069);
var myOptions = {
zoom: 6,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: true,
};
var map = new google.maps.Map(document.getElementById("map"),myOptions);
var categoryIcons = {}
for (var i = 0; i < jsonsl.length; i++) {
var data = jsonsl[i],
latLng = new google.maps.LatLng(data.Latitude, data.Longitude);
var marker = new google.maps.Marker({
position: latLng,
map : map,
title : data.Name,
icon : categoryIcons[data.ConnectorType],
});
任何帮助或建议都将不胜感激。
更多信息:
文件设置相同,只是名称不同:
var jsonsl = [{
"Name" : "2 Riddons Road",
"Latitude" : 51.43145362,
"Longitude" : 0.031174836,
"PostCode" : "SE12 9QR",
"Address" : "Riddons Road, jctn with Chinbrook Road, Lewisham , London, SE12 9QR",
"Count" : 1,
"Information" : "3-pin square",
"Connection" : "BS 1363",
"ChargeRate" : "Standard (up to 3.7kW, 13-16A)",
"ConnectorType" : 1,
"Operator" : "Source London",
}]
和
var jsonpm = [{
"Name" : "Cornthwaite Road",
"Latitude" : 51.55798957,
"Longitude" : -0.052563915,
"PostCode" : "E5 9QL",
"Address" : "Cornthwaite Road south of Thistlethwaite Road, Hackney, London, E5 9QL",
"Count" : 1,
"Information" : "7-pin 'Smart' eg Mennekes",
"Connection" : "IEC 62196 Fast",
"ChargeRate" : "Fast (7kW, 32A)",
"ConnectorType" : 2,
"Operator" : "Source London",
}]
答案 0 :(得分:0)
您只处理其中一个文件(jsons1)中的数据:
for (var i = 0; i < jsonsl.length; i++) {
var data = jsonsl[i],
latLng = new google.maps.LatLng(data.Latitude, data.Longitude);
var marker = new google.maps.Marker({
position: latLng,
map : map,
title : data.Name,
icon : categoryIcons[data.ConnectorType],
});
}
您需要同时处理:
for (var i = 0; i < jsonsl.length; i++) {
var data = jsonsl[i],
latLng = new google.maps.LatLng(data.Latitude, data.Longitude);
var marker = new google.maps.Marker({
position: latLng,
map : map,
title : data.Name,
icon : categoryIcons[data.ConnectorType],
});
}
for (var i = 0; i < jsonspm.length; i++) {
var data = jsonspm[i],
latLng = new google.maps.LatLng(data.Latitude, data.Longitude);
var marker = new google.maps.Marker({
position: latLng,
map : map,
title : data.Name,
icon : categoryIcons[data.ConnectorType],
});
}
(如果你要做的更多,你可以使它成为一个获取数据名称并将其添加到地图的函数)