#javascript #google-maps-api-3
#javascript #google-maps-api-3
Вопрос:
Я пытаюсь сделать так, чтобы, когда пользователь выбирает что-то из формы и нажимает «Отправить», он добавлял все это на карту Google. Добавление маркеров работает отлично, и добавление события прослушивания для добавления полилиний также работает отлично. По какой-то причине файл KML не будет правильно накладываться. Хотя я не уверен, что делаю это правильно. Значение из формы выводится корректным эхом, поэтому я знаю, что данные доходят, по крайней мере, до функции map. Вот код, который не работает:
window.onload = function() {
// Creating an object literal containing the properties
// we want to pass to the map
var options = {
zoom: 5,
center: new google.maps.LatLng(39.09, -95.71),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
// Creating the map
var map = new google.maps.Map(document.getElementById('map'), options);
// Creating a LatLngBounds object
var bounds = new google.maps.LatLngBounds();
// Creating an empty MVCArray
var route = new google.maps.MVCArray();
var polyline = new google.maps.Polyline({
path: route,
strokeColor: "#ff0000",
strokeOpacity: 0.6,
strokeWeight: 5
});
polyline.setMap(map);
google.maps.event.addListener(map, 'click', function(e) {
var path = polyline.getPath();
path.push(e.latLng);
});
kmlFiles.setMap(map);
вот код, который устанавливает переменную kmlFiles:
kmlFiles = new google.maps.KmlLayer(<?php echo $_POST['kmlFile']; ?>);
Комментарии:
1. На мой взгляд, код выглядит нормально. Что именно пошло не так? Вам действительно нужно использовать файл kml?
Ответ №1:
Я подозреваю, что вам не хватает кавычек вокруг URL-адреса, который вы передаете KmlLayer, например
var layer = новый слой Google.maps.KmlLayer(http://www.site.com/foo.kml );
недопустимо при
var layer = новый google.maps.KmlLayer(«http://www.site.com/foo.kml «);
допустимо.