Задать вопрос
@xavibeat_dk

Из-за чего может быть такая ошибка в Google Maps API 3?

Подопытный сайт
На сайте реализованы карты Google через API 3. В понедельник все маркеры были на месте и показывали информацию, сегодня все пусто. Сайт работает на WPress. Консоль пишет ошибку: Uncaught SyntaxError: Unexpected token , . При клике на ошибку выходит такая строка:
<script>
            var flat = {
                name: "1 комн. кв. на Ленина 18",
				coord: new google.maps.LatLng(, ),
                href: "http://kv43sutki.ru/?p=118",
                marker:null,
                iw:null
            }

            flat.marker     = new google.maps.Marker({ position: flat.coord, map: map, title: flat.name });
            flat.iw         = new google.maps.InfoWindow({ content: flat.name+"<br/><a href='" + flat.href + "' target=\"_blank\">Подробнее...</a>" });

            arrFlats.push(flat);
        </script>

Использую такой шаблон для вывода карты на странице:
<div class="content-wrapper without-featured-image">
<script>
    var arrFlats = [];
</script>
     <div id="map_canvas" style="width:100%; height:500px"></div>

    <script type="text/javascript" charset="utf-8">
        var map;
		
        function initialize(arrFlats) {
            arrMark = [];
        var latlng = new google.maps.LatLng(58.609079, 49.670920);
        var myOptions = {
            zoom: 13,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    
        for(var i=0; i<arrFlats.length; i++) {
                var point = arrFlats[i].coord;


                var marker = new google.maps.Marker({ position:  arrFlats[i].coord, map: map, title:  arrFlats[i].name });
				            
                var contentString = arrFlats[i].name+"<br/><a href='" + arrFlats[i].href + "' target=\"_blank\"><?php print(iconv("windows-1251", "UTF-8", "подробнее...")) ?></a>";
                makeInfoWin(marker, contentString, map);
            }

        }

        function makeInfoWin(marker, data) {
            var infowindow = new google.maps.InfoWindow({ content: data });
			infowindow.open(map,marker);
            google.maps.event.addListener(marker, 'click', function() {
                
            });  

        }
    
    </script>

<?php
$args = array(
        'numberposts'       => 100,
        'orderby'           => 'post_date',
        'order'             => 'DESC',
        'post_type'         => 'post',
        'post_status'       => 'publish',
        'suppress_filters'  => true
    );
$posts = get_posts($args );

    $r = curl_init(); 
    curl_setopt($r, CURLOPT_NOPROGRESS, 0); 
    curl_setopt($r, CURLOPT_RETURNTRANSFER, 1); 
    
foreach( $posts as $post ){
        
    setup_postdata($post);

    $addrs = get_post_meta($post->ID, 'city', true).','.get_post_meta($post->ID, 'street', true).','.get_post_meta($post->ID, 'house', true);           
	$html_query = "http://maps.googleapis.com/maps/api/geocode/json?address=".$addrs."&sensor=false&language=ru";
    curl_setopt($r, CURLOPT_URL, $html_query); 


    $html_res1 = curl_exec($r); 
	sleep(1);
	$html_res1 = file_get_contents(urldecode($html_query));   
    
	
	
	//print_r($html_res1);
	//die();
	$cart = json_decode( $html_res1 );
	$coordinates_lat = $cart->results[0]->geometry->location->lat;
    $coordinates_lng = $cart->results[0]->geometry->location->lng;

   //print("$addr1251 $coordinates_lat $coordinates_lng<br/>"); 
    
    
?>


		<script>
            var flat = {
                name: "<?php print($post->post_title) ?>",
				coord: <?php print("new google.maps.LatLng($coordinates_lat, $coordinates_lng)") ?>,
                href: "<?php print ($post->guid) ?>",
                marker:null,
                iw:null
            }

            flat.marker     = new google.maps.Marker({ position: flat.coord, map: map, title: flat.name });
            flat.iw         = new google.maps.InfoWindow({ content: flat.name+"<br/><a href='" + flat.href + "' target=\"_blank\">подробнее...</a>" });

            arrFlats.push(flat);
        </script>


      <?php

}
wp_reset_postdata();

           ?>
<script>
    initialize(arrFlats);

</script>



		</div>

В чем может быть причина, почему не передаются координаты
  • Вопрос задан
  • 366 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@lavrentiev
Back-end разработчик
Проверь выдает ли твой обработчик координаты, а потом уже проверь все ли верно при приеме их в JS коде.

а вообще совет используй api.jquery.com/jquery.getjson и создавай новые метки уже с полученным результатом а не так как щас у тебя!
Ответ написан
Комментировать
@xavibeat_dk Автор вопроса
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы