我一直試圖弄清楚這一點,但似乎無法完成!我通過Ajax從Laravel的數據庫獲取數據,然後試圖讓標記顯示每個標記的infowindows。標記將自己放置在我想要的不同地址上,但它們都共享同一個infowindow。 (這是來自數據庫最後一行的信息)。Google Maps API - 所有標記共享相同的infowindow
我試圖實現我的代碼此解決方案:Google Maps API v3 - Markers All Share The Same InfoWindow
但它沒有工作......
我的代碼如下所示:
var app = new Vue({
el: 'body',
data: {
users: $.getJSON("http://localhost:8000/data", function(data){
var map = new google.maps.Map(document.querySelector('#map'), {
center: {lat: 57.708870, lng: 11.974560 },
zoom: 14
});
var geocoder = new google.maps.Geocoder();
function bindInfoWindow(marker, map, infowindow, html) {
marker.addListener('click', function() {
infowindow.setContent(html);
infowindow.open(map, this);
});
}
for (var i = 0; i < data.length; i++) {
var address = data[i]['address'] + ' Göteborg';
var contentString = '<h4 style="color: #ffc62d">' + data[i]['foodtruck_name'] + '</h4>'
+ '<b>Mat:</b> ' + data[i]['type_of_food']
+ '<br><b>Öppettider:</b> '+ data[i]['open_hours']
+ '<br><b>Adress:</b> '+ data[i]['address']
+ '<br><b>Hemsida:</b> '+ '<a href="http://' + data[i]['webadress'] + '" target="_blank">' + data[i]['webadress'] + '</a>';
var image = {
url: 'http://localhost:8000/img/foodtruck.png',
// This marker is 20 pixels wide by 32 pixels high.
size: new google.maps.Size(45, 30),
// The origin for this image is (0, 0).
origin: new google.maps.Point(0, 0),
// The anchor for this image is the base of the flagpole at (0, 32).
anchor: new google.maps.Point(0, 30)
};
var shape = {
coords: [1, 1, 1, 30, 45, 20, 18, 1],
type: 'poly'
};
var infoWindow = new google.maps.InfoWindow({
maxWidth: 250
});
geocoder.geocode({'address': address}, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
icon: image,
shape: shape
});
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
bindInfoWindow(marker, map, infoWindow, contentString);
});
};
})
},
methods: {
createMap: function() {
var map = new google.maps.Map(document.querySelector('#map'), {
center: {lat: 57.708870, lng: 11.974560 },
zoom: 14
});
}
}
});
人有一個想法或一個例子關於如何解決這個問題?這讓我瘋狂! :-(
這是從數據對象返回的JSON:
[{"foodtruck_name":"Emils Foodtruck","open_hours":"11:00-16:00","address":"Stigbergsliden 9","type_of_food":"Mexikanskt tema","webadress":"www.emilwallgren.se"},{"foodtruck_name":"Kodameras Truck","open_hours":"08:00-17:00","address":"F\u00f6rsta L\u00e5nggatan 16","type_of_food":"Cookies","webadress":"www.kodamera.se"}]
[就是這裏的這個答案,好友](http://stackoverflow.com/a/9480418/1206267)。原因在於你如何構建你的循環和標記。 – Ohgodwhy
感謝@Ohgodwhy的提示,但我一直在嘗試和試驗這個帖子很多。你能給我一個更具體的例子或代碼示例:-)但是,謝謝你的答覆:-) –