誰もが次のことを行う簡単なスクリプトが利用できることを知っているのかと思っただけです。
ビューにGoogleマップをロードし、クリックすると緯度と経度の値を変数に保存するマーカーが表示されますか?
このようなものが既にPHPに存在するかどうかは誰にもわかりますか?
前もって感謝します
おそらくあなたはこれに似たものを探しています Latitude-Longitude Finder Tool 。サンプルコード は API v2でした。以下は、Google Maps API v3を使用したコードの短縮バージョンです。
var latlng = new google.maps.LatLng(51.4975941, -0.0803232);
var map = new google.maps.Map(document.getElementById('map'), {
center: latlng,
zoom: 11,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var marker = new google.maps.Marker({
position: latlng,
map: map,
title: 'Set lat/lon values for this property',
draggable: true
});
google.maps.event.addListener(marker, 'dragend', function(a) {
console.log(a);
// bingo!
// a.latLng contains the co-ordinates where the marker was dropped
});
説明:マーカーの draggable
プロパティをtrueに設定する必要があります。その後、コールバック関数をそのマーカーのdragend
イベントにフックできます。新しい座標は関数に渡され、JavaScript変数またはフォームフィールドに割り当てることができます。
// add a click event handler to the map object
GEvent.addListener(map, "click", function(overlay, latLng)
{
// display the lat/lng in your form's lat/lng fields
document.getElementById("latFld").value = latLng.lat();
document.getElementById("lngFld").value = latLng.lng();
});
緯度経度を取得したら、マーカーを配置できると思います。
Google maps API v.3をご覧ください。 イベントページ から:
google.maps.event.addListener(map, 'click', function(event) {
// use event.latLng to place a google.maps.Marker
});
以下のコードはうまく機能します
var latlng = new google.maps.LatLng(51.4975941, -0.0803232);
var map = new google.maps.Map(document.getElementById('map'), {
center: latlng,
zoom: 11,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var marker = new google.maps.Marker({
position: latlng,
map: map,
title: 'Set lat/lon values for this property',
draggable: true
});
google.maps.event.addListener(marker, 'dragend', function (event) {
document.getElementById("latbox").value = this.getPosition().lat();
document.getElementById("lngbox").value = this.getPosition().lng();
});
私はこれまでのところ以下を管理しました-地図上のどこかをクリックしたときにマーカーの位置を移動するためにこれをどのように修正できますか
以下を追加しましたが、何もしないようです
google.maps.event.addListener(map, 'click', function(event) {
addMarker(event.latLng);
});