2015-01-05 2 views
-1

Попытка получить мои маркеры, указывающие на другие страницы. Скопировал ответы из ранее разрешенных случаев. Все еще не работает. Карта с маркерами появляется ОК. Тем не менее, даже заголовки, ссылки не работают. Продолжайте получать сообщение «Uncaught ReferenceError: маркер не определен». Что я здесь делаю неправильно? Из идей.
Может кто-то посмотреть, чтобы помочь мне в этом. Гигантское спасибо;Неверная ссылка на карту гаджета Google

<script 
    src="https://maps.googleapis.com/maps/api/js?language=ko&key=AIzaSyA3WDZ1KfeUb_Q-SxtIRE2wZ4RBieuGl7s" 
    type="text/javascript"> 
</script> 
<script> 
function Goog2() { 
    var mapCanvas = document.getElementById('Google_map'); 
    var mapOptions = { 
     center: new google.maps.LatLng(45.80257,15.9371), 
     zoom: 10, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    var map = new google.maps.Map(mapCanvas, mapOptions); 

    var myLatLng0 = new google.maps.LatLng(45.80257,15.9371); 
    var myLatLng1 = new google.maps.LatLng(45.805455,15.983761); 
    var myLatLng2 = new google.maps.LatLng(45.738822, 16.068278); 
    var myLatLng3 = new google.maps.LatLng(45.803816, 15.993573); 

    var markers = []; 


    markers[0] = new google.maps.Marker({ 
     position: myLatLng0, 
     map: map, 
     url: '/cocohouse/location/CH_location_en.html', 
     icon: "/images/ariranglogoimage28_2.png", 
     title: 'Coco House', 
    }); 
    markers[1] = new google.maps.Marker({ 
     position: myLatLng1, 
     map: map, 
     icon: "/images/cocohouse/location/train26.png", 
     url:"/cocohouse/location/to_CH3_en.html", 
     title: 'Train Terminal', 

    }); 
    markers[2] = new google.maps.Marker({ 
     position: myLatLng2, 
     map: map, 
     icon: "/images/cocohouse/location/airport32.png", 
     url:"/cocohouse/location/to_CH1_en.html", 
     title: 'Airport', 
    }); 
    markers[3] = new google.maps.Marker({ 
     position: myLatLng3, 
     map: map, 
     icon: "/images/cocohouse/location/bus26.png", 
     url:"/cocohouse/location/to_CH2_en.html", 
     title: 'Bus Terminal', 
    }); 
    } 
    google.maps.event.addDomListener(window, 'load', Goog2); 

    for (i = 0; i < markers.lenght; i++) { 
     google.maps.event.addListener(markers[i], 'click', function() { 
      window.location.href = this.url; 
     }); 
    } 
</script> 
+0

"Uncaught ReferenceError: маркер не определен": есть ли у вас номер строки? – Thierry

+0

markers.lenght: просто опечатка? markers.length – Thierry

+0

сообщение появляется .... маркеры.lenght ..... line. Когда я помещаю # 4, вместо этого сообщение «Ошибка» переходит к следующей строке. –

ответ

0

Вы используете 'маркеры' в контексте, который не определен. «Маркеры» объявляются в функции Goog2 и используются снаружи.

Try (не проверено):

<script> 
    function Goog2() { 
    var mapCanvas = document.getElementById('Google_map'); 
    var mapOptions = { 
     center: new google.maps.LatLng(45.80257,15.9371), 
     zoom: 10, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    var map = new google.maps.Map(mapCanvas, mapOptions); 

    var myLatLng0 = new google.maps.LatLng(45.80257,15.9371); 
    var myLatLng1 = new google.maps.LatLng(45.805455,15.983761); 
    var myLatLng2 = new google.maps.LatLng(45.738822, 16.068278); 
    var myLatLng3 = new google.maps.LatLng(45.803816, 15.993573); 
    var markers = []; 
    markers[0] = new google.maps.Marker({ 
     position: myLatLng0, 
     map: map, 
     url: '/cocohouse/location/CH_location_en.html', 
     icon: "/images/ariranglogoimage28_2.png", 
     title: 'Coco House', 
    }); 
    markers[1] = new google.maps.Marker({ 
     position: myLatLng1, 
     map: map, 
     icon: "/images/cocohouse/location/train26.png", 
     url:"/cocohouse/location/to_CH3_en.html", 
     title: 'Train Terminal', 

    }); 
    markers[2] = new google.maps.Marker({ 
     position: myLatLng2, 
     map: map, 
     icon: "/images/cocohouse/location/airport32.png", 
     url:"/cocohouse/location/to_CH1_en.html", 
     title: 'Airport', 
    }); 
    markers[3] = new google.maps.Marker({ 
     position: myLatLng3, 
     map: map, 
     icon: "/images/cocohouse/location/bus26.png", 
     url:"/cocohouse/location/to_CH2_en.html", 
     title: 'Bus Terminal', 
    }); 

    for (i = 0; i < markers.length; i++) { 
     google.maps.event.addListener(markers[i], 'click', function() { 
      window.location.href = this.url; 
     }); 
    } 
    } 
    google.maps.event.addDomListener(window, 'load', Goog2); 

</script> 
+0

Geting где-то !! Сообщение об ошибке исчезло. –

+0

однако ссылка все еще не работает. проверяя .... –

+0

попытайтесь добавить сообщение console.log (this.url) в прослушиватель кликов, чтобы увидеть, работает ли прослушиватель, и правильный URL-адрес. – Thierry

0

markers.lenght; следует читать markers.length;

for (var i=0; i < markers.length; i++) { 
    google.maps.event.addListener(markers[i], 'click', function() { 
     window.location.href = this.url; 
    }); 
} 

markers необходимо определить, прежде чем использовать его.

Вы вызываете Goog2 на загрузку окна, но ваш цикл выполняется перед этим событием и до заполнения массива.

+0

работает .. ребята, вы - короли .... –

0

Вы добавляете прослушиватели кликов до появления маркеров. Переместите этот цикл внутри функции Goog2. Пример фрагмента кода (изменил маркеры на общедоступные значки, URL-адреса на произвольные общедоступные, исправил орфографическую ошибку на markers.length).

function Goog2() { 
 
    var mapCanvas = document.getElementById('Google_map'); 
 
    var mapOptions = { 
 
    center: new google.maps.LatLng(45.80257, 15.9371), 
 
    zoom: 10, 
 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
 
    } 
 
    var map = new google.maps.Map(mapCanvas, mapOptions); 
 

 
    var myLatLng0 = new google.maps.LatLng(45.80257, 15.9371); 
 
    var myLatLng1 = new google.maps.LatLng(45.805455, 15.983761); 
 
    var myLatLng2 = new google.maps.LatLng(45.738822, 16.068278); 
 
    var myLatLng3 = new google.maps.LatLng(45.803816, 15.993573); 
 

 
    var markers = []; 
 

 

 
    markers[0] = new google.maps.Marker({ 
 
    position: myLatLng0, 
 
    map: map, 
 
    url: 'http://google.com', 
 
    icon: "http://maps.google.com/mapfiles/ms/micons/yellow.png", 
 
    title: 'Coco House', 
 
    }); 
 
    markers[1] = new google.maps.Marker({ 
 
    position: myLatLng1, 
 
    map: map, 
 
    icon: "http://maps.google.com/mapfiles/ms/micons/blue.png", 
 
    url: "http://yahoo.com", 
 
    title: 'Train Terminal', 
 

 
    }); 
 
    markers[2] = new google.maps.Marker({ 
 
    position: myLatLng2, 
 
    map: map, 
 
    icon: "http://maps.google.com/mapfiles/ms/micons/green.png", 
 
    url: "http://maps.google.com", 
 
    title: 'Airport', 
 
    }); 
 
    markers[3] = new google.maps.Marker({ 
 
    position: myLatLng3, 
 
    map: map, 
 
    icon: "http://maps.google.com/mapfiles/ms/micons/purple.png", 
 
    url: "http://www.cnn.com", 
 
    title: 'Bus Terminal', 
 
    }); 
 

 
    for (i = 0; i < markers.length; i++) { 
 
    google.maps.event.addListener(markers[i], 'click', function() { 
 
     window.location.href = this.url; 
 
    }); 
 
    } 
 
} 
 
google.maps.event.addDomListener(window, 'load', Goog2);
html, 
 
body, 
 
#Google_map { 
 
    height: 500px; 
 
    width: 500px; 
 
    margin: 0px; 
 
    padding: 0px 
 
}
<script src="https://maps.googleapis.com/maps/api/js"></script> 
 
<div id="Google_map" style="width:750px; height:450px; border: 2px solid #3872ac;"></div>

+0

это работает !!!! great –

+0

Если ваша проблема была устранена, пожалуйста, [принимайте один из ответов] (http://meta.stackoverflow.com/questions/5234/how-does-accepting-an-answer-work) – geocodezip

Смежные вопросы