1

GoogleマップAPIv3を使用したGoogleマップがあります。私が持っているのはアコーディオンのGoogleマップで、ユーザーはマーカーをクリックして配置でき、緯度と経度の値が上部の2つのテキストボックスに入力されます。

この部分は、以下のスクリプトで正常に機能しています。しかし、ユーザーがテキストボックスマーカーのlatまたはlonの値を変更する必要がある場合、テキストボックスはlat&lonで埋められるので、今必要なものはそれに応じて変更する必要があります。

var map = null;
function initialize() {
var myLatlng = new google.maps.LatLng(25.263327,55.329895);
    var myOptions = {
        zoom: 10,
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
        }
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

var marker;

function placeMarker(location) {
    if ( marker ) {
        marker.setPosition(location);
    } else {
        marker = new google.maps.Marker({
        position: location,
        map: map
        });
        }
    }

google.maps.event.addListener(map, 'click', function(event) {
    placeMarker(event.latLng);
    document.getElementById("latFld").value = event.latLng.lat();
    document.getElementById("lngFld").value = event.latLng.lng();
});


  }

$(document).ready(function() {

$("#accordion").bind('accordionchange', function(event, ui) {
    if (ui.newContent.attr('id') == 'tabThree' && !map)
    {
        map = initialize();
    }
    });
    });

4

1 に答える 1

0

このようなものがうまくいくかもしれません:

function updatePosition(){
    var lat = parseFloat(document.getElementById("latFld").value);
    var lon = parseFloat(document.getElementById("lngFld").value);
    if (lat && lon) {
        var newPosition = new google.maps.LatLng(lat,lon);
        placeMarker(newPosition);
    }
}

...そしてあなたのHTMLで

<input id ='latFld' onkeyup='updatePosition()'>
<input id ='latFld' onkeyup='updatePosition()'>

onkeyup の代わりに onchange を使用して、過活動を軽減することをお勧めします。:-)

于 2012-07-05T13:02:42.843 に答える