2013-08-31 3 views
3

Я использую gmap3 plugin, чтобы показать карту google. В моем случае я сохранил всю информацию свойств в базе данных (mysql) с пользовательскими маркерами. Теперь я хочу, чтобы при загрузке страницы отобразились все маркеры на карте google. Для загрузки Googlemap с gmap3 плагин Я использую этот кодGmap3 показать все доступные маркеры на карте из базы данных?

function loadMap() { 
    jQuery(document).ready(function(){ 
    if(typeof gMap == 'undefined') { 
     //// CREATES A MAP 
     gMap = jQuery('#map-canvas'); 
     gMap.gmap3({ 
     map: { 
      options: { 
      zoom: 2, 
      mapTypeId: google.maps.MapTypeId.ROADMAP, 
      mapTypeControl: true, 
      mapTypeControlOptions: { 
       style: google.maps.MapTypeControlStyle.DROPDOWN_MENU 
      }, 
      navigationControl: true, 
      scrollwheel: true, 
      streetViewControl: false 
      } 
     } 
     }); 
    } 
    }); 
} 

и внутри DIV `` карта холст я могу увидеть карту. Но может ли кто-нибудь сказать мне, как показать все маркеры с позициями? Любая помощь и предложения будут действительно заметны. Благодарю.

Обновление Если я ошибаюсь в своих кодах, тогда кто-то может показать свои коды мне. Я использую плагин Gmap3.

+0

В вышеуказанном коде вы не читаете никаких данных о производителях – Lucky

+0

yes..that Я хочу знать, как показать все доступные маркеры из базы данных. – NewUser

ответ

2

Я не уверен, что это будет работать в gmap3, но я использую этот код для создания моей значок costome надеется, что это поможет вам

В использовании index.php этом для создания значка Costom pathlike этого

<?php 
    $query = "SELECT * FROM markers WHERE 1"; 
    $result = mysql_query($query);  
    $a=array(); 
    while ($row = @mysql_fetch_assoc($result)){ $a='$row[\'type\']'=>array('icon'=>'$row[\'path\']','shadow'=>'$row[\'path2\']') 
    }  
     $a=json_encode($a); 
     ?> 

это должно быть сделано до JS-файла после этого записать эту

<script> 
     var customIcons= <?php echo $a; ?>; 
    </script> 

и, наконец, загрузить карту и infoWindowbox() в этом удовольствие ction

function infoWindowbox() { 
    downloadUrl("xml.php", function(data) { 
      var xml = data.responseXML; 
      var markers = xml.documentElement.getElementsByTagName("marker"); 
      for (var i = 0; i < markers.length; i++) { 
       var name = markers[i].getAttribute("name"); 
       var address = markers[i].getAttribute("address"); 
       var type = markers[i].getAttribute("type"); 
       var point = new google.maps.LatLng(
        parseFloat(markers[i].getAttribute("lat")), 
        parseFloat(markers[i].getAttribute("lng"))); 
       var html = "<b>" + name + "</b> <br/>" + address; 
       var icon = customIcons[type] || {}; 
       var marker = new google.maps.Marker({ 
       map: map, 
       position: point, 
       icon: icon.icon, 
       shadow: icon.shadow, 
       animation: google.maps.Animation.DROP 
       }); 
       markerArray.push(marker); 
       bounds.extend(marker.position); 
       bindInfoWindow(marker, map, infoWindow, html); 
      } 
      map.fitBounds(bounds); 
     // var markerCluster = new MarkerClusterer(map, markerArray); 
      }); 
} 

function downloadUrl(url, callback) { 
     var request = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest; 

     request.onreadystatechange = function() { 
     if (request.readyState == 4) { 
      request.onreadystatechange = doNothing; 
      callback(request, request.status); 
     } 
     }; 

     request.open('GET', url, true); 
     request.send(null); 
    } 

    function doNothing() {} 
0

gmap3 initializator имеет атрибут маркера, который позволяет создавать маркеры.

Смотрите пример с одним и несколькими маркерами здесь: http://gmap3.net/en/catalog/10-overlays/marker-41

+0

это хорошо использовать, как это, или я должен использовать данные xml для показать маркеры? – NewUser

+0

Да gmap3 принимает только этот способ (объект javascript в инициализаторе). Если у вас есть данные в XML, вы должны написать php-парсер, который генерирует синтаксис JavaScript или парсер JavaScript, который использует addMarker для динамического добавления маркеров после инициализации. –

0

Я думаю, что это example может помочь.

Обновлено:

Если вы хотите, чтобы прочитать данные, как из базы данных (или) XML, Вы можете сделать Ajax запрос на этой странице (с любой страницы на вашем сайте) с помощью JQuery:

У меня есть пример, но это с xml, чтобы получить данные из XML-файла.

$.ajax({ 
    url: 'categories.xml (or) your database path', 
    type: 'get', 
    success: function(doc) { 
     var xmlDoc = GXml.parse(doc); 
     var markers = xmlDoc.documentElement.getElementsByTagName("marker"); 

     for (var i = 0; i < markers.length; i++) { 
      // obtain the attribues of each marker 
      var lat = parseFloat(markers[i].getAttribute("lat")); 
      var lng = parseFloat(markers[i].getAttribute("lng")); 
      var point = new GLatLng(lat,lng); 
      var address = markers[i].getAttribute("address"); 
      var name = markers[i].getAttribute("name"); 
      var html = "<b>"+name+"<\/b><p>"+address; 
      var category = markers[i].getAttribute("category"); 
      // create the marker 
      var marker = createMarker(point,name,html,category); 
      map.addOverlay(marker); 
     } 

     // == show or hide the categories initially == 
     show("theatre"); 
     hide("golf"); 
     hide("info"); 
     // == create the initial sidebar == 
     makeSidebar(); 
     }); 

     }); 

Таким образом, вы можете получить данные из базы данных также с помощью запросов. Попробуйте это, по крайней мере, вы можете получить эту идею.

+0

Да, я хочу этот тип, но документация плохо написана. Я не получаю это правильно ... – NewUser

+0

что именно вы получаете прямо сейчас? – Lucky

+0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. – Ankur

0

The gmaps3 plugin documentation показывает, как добавить маркеры. Если вы создаете массив параметров в php через ajax/json и передаете его в markers:, ваши маркеры должны быть добавлены.

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