2011-01-06 6 views
1

Мне нужно, чтобы пользователь вводил геокод (LatLng) произвольной точки карты, для хранения в БД и последующего использования.jQuery или помощник Javascript для получения LatLng с Google Maps

Перед обнявшись долг, знаете ли Вы JQuery плагин или Javascript, что:

  • Всплывающие окна карта Google
  • Пользователь навигации по карте
  • пользователь нажимает на точку
  • Он помещает выбранный LatLng в текстовом поле
  • Закрыть всплывающее

(или что-то в строю)

+0

какую версию карт Google вы используете? У меня есть старая версия, которая является частью v2, которая отлично работает. Однако он не использует jquery. – ScottE

+0

@ScottE Я думаю, он пытается сделать это с помощью jQuery, а не касаться API Карт Google. – tgandrews

+0

@ScottE: v3 предпочитаемый (нет ключа хорош), но, возможно, я могу использовать часть или перенести скрипт. Благодаря! –

ответ

6

Я настоятельно рекомендую использовать v3 api, поскольку он одинаково прост в использовании и быстро учится как плагин. Также плагин не будет предлагать вам всплывающее окно.

Так вот мое решение:

1. Импорт

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

2. Поместите ДИВ в вашем HTML
<div class="mapClass" id="mapDiv" ></div>

3. Initialize your map

var map;

var greece = new google.maps.LatLng (38.822590,24.653320);

//Map options 
var mapOptions = { 
    zoom: 6, 
    center: greece, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
//Make a new map 
map = new google.maps.Map(document.getElementById("mapDiv"),mapOptions); 

Вуаля, вы получите карту и навигации управляет

4. Bind onclick event google.maps.event.addListener(map, "click",yourFunction);

и реализовать функцию, чтобы получить COORDS от мыши и заполнить некоторые текстовые поля или еще что-то плюс add a marker

function getCoordinates(event){ 
    if (event.latLng) { 
     var marker; 
     //Fill your textfields 
     document.getElementById('yourLngTextfield').value=event.latLng.lng(); 
     document.getElementById('yourLatTextfield').value=event.latLng.lat(); 

     //Remove any previously added marker and add a marker to that spot 
     if(marker!=null){ 
      marker.setMap(null); 
     } 

     var latlng = event.latLng; 
     marker = new google.maps.Marker({ 
      position: latlng 
      map: map 
     }); 
    } 
} 

Вот и все. Это еще не проверено.

Теперь, если вы хотите, чтобы добавить все это в всплывающем использовании colorbox

Если вы все еще хотите использовать плагин проверить here

Приветствия

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