Получить широту и долготу с карты Google - PullRequest
1 голос
/ 24 апреля 2011

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

1 Ответ

5 голосов
/ 24 апреля 2011

Поскольку вы имеете дело с API Карт Google (на основе тега вашего вопроса), я думаю, что использование встроенных возможностей API в JavaScript может помочь. Вы можете перейти к этому месту , чтобы начать изучение JavaScript, затем прочитайте API здесь и, наконец, сможете опубликовать форму, используя JavaScript, значения которого были автоматически - устанавливается с помощью JavaScript с широтой и долготой точки, которую пользователь щелкнул на карте.

Вот кое-что из того, что вам, возможно, придется сделать, но вам может понадобиться изучить некоторый JavaScript, чтобы расширить его или использовать его эффективно:

var map = new GMap2(document.getElementById("map_canvas"));

map.setCenter(new GLatLng(37.4419, -122.1419), 13);

GEvent.addListener(map,"click", function(overlay, latlng) {     
  if (latlng) { 
    alert("Latitude : " + latlng.lat() + " , Longitude: " + latlng.lng() );
  }
});

Итак, если вы создадите простую HTML-страницу с формой для хранения широты и долготы, например:

<form action="some_server_side_script_or_path" method="POST" id="map_form">
 <!-- display the map -->
 <div id="map_canvas"></div>
 <label for="mlatitude">Male</label>
  <input type="text" name="mlatitude" id="mlatitude" readonly="readonly"/>
  <br />
<label for="mlongitude">Male</label>
  <input type="text" name="mlongitude" id="mlongitude" readonly="readonly"/>
  <br />
<input type="submit" value="Submit Location" />
</form>

Затем, изменив наш обработчик кликов, как это, мы можем автоматически установить широту и долготу в форме, а затем дать пользователю просто нажать кнопку отправить, чтобы опубликовать значения на сервере.

GEvent.addListener(map,"click", function(overlay, latlng) {     
  if (latlng) { 
    var lat = document.getElementById("mlatitude");
    var lng = document.getElementById("mlongitude");
    lat.value = latlng.lat();
    lng.value = latlng.lng();
    //at this point, you can even use Javascript to auto-submit the form using
    //document.forms["map_form"].submit();
  }
});
...