Javascript Google地图标记和嵌套JSON在地图信息窗口中显示数据
我正在使用谷歌地图通过信息窗口显示其中的一些地方和用户 谷歌地图脚本:Javascript Google地图标记和嵌套JSON在地图信息窗口中显示数据,javascript,json,html,google-maps,google-maps-markers,Javascript,Json,Html,Google Maps,Google Maps Markers,我正在使用谷歌地图通过信息窗口显示其中的一些地方和用户 谷歌地图脚本: <script> var markers = [ ['<p>New York</p> <p><a href="#myModal" role="button" class="btn" data-toggle="modal">More information</a></p>', 40.769090, -74.002740], ['<p>
<script>
var markers = [
['<p>New York</p> <p><a href="#myModal" role="button" class="btn" data-toggle="modal">More information</a></p>', 40.769090, -74.002740],
['<p>Washington, Finland</p> <p><a href="#myModal" role="button" class="btn" data-toggle="modal">More information</a></p>', 38.908127, -77.034863],
];
function initializeMaps() {
var myOptions = {
zoom: 3,
center: new google.maps.LatLng(40.769090, -74.002740),
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false
};
var image = 'img/logos.png';
var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
var infowindow = new google.maps.InfoWindow(), marker, i;
for (i = 0; i < markers.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(markers[i][1], markers[i][2]),
map: map,
icon: image
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(markers[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}}</script>
HTML:
<div id="map_canvas"></div>
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">More Details</h3>
</div>
<div class="modal-body">
<p class="ID">ID</p>
<ul class="Location"></ul>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
<button class="btn btn-primary">Save changes</button>
</div>
</div>
×
更多细节
ID
接近
保存更改
我面临的问题是在其各自的位置显示特定的用户。
例如,当我在标记中单击new york时,它应该会显示包含两个会话的信息窗口及其详细信息(根据JSON文件)。我不知道如何处理标记ID和嵌套JSON。请帮忙 您的yode中有几个问题需要解决 第一:
<script>
var success = function(data) {
$(".ID").append(data.sessions[0].ID);
$(".Users").append(data.sessions[0].Users);
$.each(data.sessions[0].Location, function(i, value){
$(".Location").append('<li>' + value.name + '</li>');
})
}
$.getJSON("sample.json", success);
</script>
看一看,您最好在没有空格的情况下编写标识符
因此,您可以编写一个for构造,如:
for(var i = 0; i<data.sessions.length;i++){
var locations = data.sessions[i].Location;
if ('Washington' in locations) {
//Code to add it in your city information window
console.log(locations.Washington);
}
}
对于(var i=0;我是否有一个完整的示例(或一个JSFIDLE)显示问题?或者至少显示您发布的代码正在工作?@geocodezip并检查我在回答之前检查过的两个选项;)我已将ID更改为100和200,但无法检索数据。我同意你所说的模型。我会换的。我想分步走。
<script>
var success = function(data) {
$(".ID").append(data.sessions[0].ID);
$(".Users").append(data.sessions[0].Users);
$.each(data.sessions[0].Location, function(i, value){
$(".Location").append('<li>' + value.name + '</li>');
})
}
$.getJSON("sample.json", success);
</script>
data.sessions[0].Location.NewYork[0]
for(var i = 0; i<data.sessions.length;i++){
var locations = data.sessions[i].Location;
if ('Washington' in locations) {
//Code to add it in your city information window
console.log(locations.Washington);
}
}