我可以使用以下方式在Google地图上绘制点列表:
(function() {
window.onload = function() {
var map = new google.maps.Map(document.getElementById("map"), {
center: new google.maps.LatLng(41.6, -0.88),
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
// Creating the JSON data
var json = [
{
"nombre": "NAME1",
"lat": "41.653",
"long": "-0.907922",
},
{
"nombre": "NAME2",
"lat": "41.6693",
"long": "-0.891317",
},
{
"nombre": "NAME3",
"lat": "41.6502",
"long": "-0.875212",
}
];
var infoWindow = new google.maps.InfoWindow();
for (var i = 0, length = json.length; i < length; i++) {
var data = json[i],
latLng = new google.maps.LatLng(data.lat, data.long);
// Creating a marker and putting it on the map
//var iconBase = 'https://dea-srl.net/domenico/traking/js/';
var iconBase = 'https://maps.google.com/mapfiles/kml/shapes/';
var marker = new google.maps.Marker({
position: latLng,
map: map,
title: data.nombre,
icon: iconBase + 'schools_maps.png'
});
(function(marker, data) {
// Attaching a click event to the current marker
google.maps.event.addListener(marker, "click", function(e) {
infoWindow.setContent(data.nombre);
infoWindow.open(map, marker);
});
})(marker, data);
}
}
})();
它运行良好,但我需要从生成的json字符串格式中读取我的位置,如下所示:
{
"locations": [
{
"nombre": "Name1",
"lat": "41.6504",
"long": "-0.879137",
},
{
"nombre": "NAME2",
"lat": "41.6405",
"long": "-0.893266",
}
]
}
这个Json是从php脚本生成的,可以通过以下网址获得:http://myscript.php。
我的问题是,如何从php脚本中获取JSON并将其放入JavaScript变量?
答案 0 :(得分:0)
对象具有相同的结构。
在json.length
和json[i]
的位置,分别使用yourvariable.locations.length
和yourvariable.locations[i]
。
答案 1 :(得分:0)
您可以自己构建变量。
var json = [];
$.each(yourvariable.locations[0], function(index, value) {
var step = {
nombre : value.nombre,
lat : value.lat,
lon : value.long
}
json.push(step);
});
答案 2 :(得分:0)
你从myscript.php得到的只是一个字符串。您需要将其转换为JavaScript对象
有很多方法可以做到这一点
1.<script> var json = <?php echo $JSON; ?></script>
OR
2. var json = JSON.parse("<?php echo $JSON;?>");
OR 您也可以考虑更改myscript.php以回显类似这样的内容
Var json = "$JSON_from_php";
并将其添加到dom,
<script src="myscript.php" async="async"></script>
OR 你可以通过ajax
获取它$.get("myscript.php",function(json) {
//json will contain the data.
});
在地图生成器中使用json.locations
。