在我的地图上链接2个json文件

时间:2013-09-24 17:41:51

标签: json google-maps

我想使用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",       
    }]

1 个答案:

答案 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],
      });
}

(如果你要做的更多,你可以使它成为一个获取数据名称并将其添加到地图的函数)