#javascript #jquery #google-maps #firefox
#javascript #jquery #google-карты #firefox
Вопрос:
Я использую Google map api для создания карты. Используя следующий код, я могу сгенерировать карту в Google Chrome, но она не работает в Firefox. Кроме того, в консоли отсутствует ошибка JS и соответствующий html не генерируется в firefox.
var map;
var marker;
var lat;
var lng;
var myLatlng;
var geocoder = new google.maps.Geocoder();
var infowindow = new google.maps.InfoWindow();
function initialize(){
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
myLatlng = new google.maps.LatLng(-23.69748,133.88362);
}
function showPosition(position) {
lat = position.coords.latitude;
lng = position.coords.longitude;
show_map(lat,lng);
}
function show_map(lat,lng){
var mapOptions = {
zoom: 18,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("myMap"), mapOptions);
map.setCenter(new google.maps.LatLng(lat,lng));
map.setZoom(8);
marker = new google.maps.Marker({
map: map,
position: new google.maps.LatLng(lat,lng),
draggable: true
});
geocoder.geocode({'latLng': new google.maps.LatLng(lat,lng) }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
infowindow.setContent(results[0].formatted_address);
infowindow.open(map, marker);
}
}
});
}
}
google.maps.event.addDomListener(window, 'load', initialize);
Комментарии:
1. Не могли бы вы опубликовать какую-нибудь скрипку?
2. geocoder = новый google.maps. Geocoder(); и infowindow = новый google.maps. InfoWindow(); — Попробуйте поместить эти строки внутри initialize() . (вы можете сохранить объявление глобальным).
3. Если
navigator.geolocation
значение равно false, то вы не вызываетеshow_map
сmyLatlng
помощью as a possition.
Ответ №1:
Просто вызовите метод initialize like initialize();
, и он будет работать.
Я сделал вам рабочую скрипку здесь.