Вопрос

Можно ли программно генерировать маркеры в Google? Например, у меня есть база данных услуг и местоположений, которые я хочу построить на карте Google, используя PHP.

Использование MAPS API V3, я создал карту и понизировал спецификацию мелким использованием маркеров и информации, но то, что я действительно хочу сделать, это генерировать числа (1,2,3,4 ... и т. Д.) В маркером по умолчанию Пузыри на основе порядка, которые они получают из БД. Кроме того, я хотел бы изменить цвет значка маркера программно на основе типа обслуживания в базе данных.

Я использую PHP, так что не знаю, есть ли сценарий для этого, но я надеялся, что Google предоставит этот пользовательский маркер поколения через API.

Это было полезно?

Решение

У PHP выпите код JavaScript.

Вот небольшое удобное функция JavaScript, которую я писал, чтобы добавить маркер с окном, связанным с окном.

function add_marker(opts, place) {
  var marker = new google.maps.Marker(opts);
  marker.place_id = place.id;
  markers[place.id] = marker;
  var infowindow = new google.maps.InfoWindow({
    content: place.details
  });

  infowindows[place.id] = infowindow;

  google.maps.event.addListener(marker, 'click', function() {
    infowindows[marker.place_id].open(map,marker);
  });

 }

Поэтому после того, как заявил, что в каком-то местах JavaScripty вы бы тогда у вас есть какой-то PHP, который, вероятно, напоминает (и при условии, что ваша карта - глобальная «карта»):

<script type="text/javascript">
  <?php 
  $count = 0;
  foreach ($rowset as $row): ?>
  add_marker({
        position: new google.maps.LatLng(<?php echo $row->lat ?>, <?php echo $row->lng ?>),
        title:<?php echo $row->title ?>,
        map:map
    }, { id:'<?php echo $count ?>', details:'<?php echo $row->details ?>' });
  <?php 
  $count++;
  endforeach; ?>
</script>

Я не тестировал ни одно из этого, и у меня есть какая-либо идея, как выглядит данные, но этот метод должен работать на то, что вы хотите. Я не на 100% уверен, что вы подразумеваете под заказным маркером, потому что звучит так, как будто вы уже делаете это, а не через PHP.

Другие советы

MAPS API требует, чтобы вы использовали образ (а не Arbitrary Div) для отображения маркеров, поэтому вам нужно будет отображать сторону сервера изображений.

Простой способ сделать это - использовать API Google Charts для рендеринга значков маркера:http://code.google.com/apis/chart/docs/gallery/dynamic_icons.html#pins.

Пример вывода:alt text

Сгенерировано с: https://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=c|ff000000000000.

Я не уверен, что у кого -нибудь еще возникла эта проблема, но я не мог зацикливаться на геокоде, чтобы нанести свой момент, и Google даже считает это злоупотреблением их услугами. Таким образом, мой метод состоял в том, чтобы GeoCode и сохранить координаты LAT/LONG на стадии ввода пользователя вместо этапа дисплея, сняв напряжение полосы пропускания, которое он ставит в Google.

Я не уверен, что поможет ли это, но это может помочь вам, возможно, предварительный код и хранить эти маркеры, а не делать это на лету. Когда он стоит с выбранным вами ответом, вы полагаетесь в Google, чтобы произвести эти изображения, пока ваша страница загружается, возможно, вы можете ускорить ваш сервис, запустив этот код на другом этапе и сохраняя вывод с координатами в Ваша база данных PHP.

Ваше здоровье,

Дэн

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top