У меня проблемы с переводом скрипта с картами Google с API2 на API3. Скрипт работает следующим образом - На карте существует один маркер, и пользователь может перетащить его или щелкнуть по карте и удалить этот маркер, чтобы щелкнуть место, координаты с текущим положением маркера переходят к скрытому вводу. Это сценарий:
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
<!-- google maps -->
<!-- Do rejestracji -->
<script type='text/javascript'>
<!--
var mapa;
var marker;
function mapaStart()
{
if(GBrowserIsCompatible())
{
mapa = new GMap2(document.getElementById("doMeeting"));
mapa.setCenter(new GLatLng(52.348763181988076, 18.61083984375), 6, G_HYBRID_MAP);
mapa.addControl(new GLargeMapControl());
mapa.addControl(new GMapTypeControl());
marker = new GMarker(mapa.getCenter(),{icon: marker, draggable: true});
mapa.addOverlay(marker);
// zdarzenia dla markera
GEvent.addListener(marker,'drag',uaktualnijWspolrzedne);
GEvent.trigger(marker,'drag');
// zdarzenia dla mapy
GEvent.addListener(mapa,'click',function(o,p)
{
if(p)
{
marker.setPoint(p);
uaktualnijWspolrzedne();
}
});
}
}
function uaktualnijWspolrzedne()
{
var input_lat = document.getElementById('lat');
var input_lng = document.getElementById('lng');
var punkt = marker.getLatLng();
input_lat.value = punkt.lat();
input_lng.value = punkt.lng();
}
</script>
И просмотр:
<div id="doMeeting" style="width: 400px; height: 400px;"></div>
<input type="hidden" id="lat" name="lat"/>
<input type="hidden" id="lng" name="lng"/>
И моя проблема в том, что мой скрипт перевода не работал как старый. Маркер можно только перетаскивать, вариант с кликом по карте не работает и координаты положения маркера не поступают на ввод. У меня не было опыта работы с картами Google или JavaSript, поэтому, пожалуйста, помогите. Вот как я пытаюсь перевести сценарий:
<script type='text/javascript'>
<!--
var mapa;
function mapaStart()
{
mapOpc = {
center:new google.maps.LatLng(52.348763181988076, 18.61083984375),
zoom:6,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
mapa=new google.maps.Map(document.getElementById("doMeeting"),mapOpc);
var marker=new google.maps.Marker({
position:new google.maps.LatLng(52.348763181988076, 18.61083984375),
draggable: true,
map: mapa,
});
marker.setMap(mapa);
// zdarzenia dla markera
google.maps.event.addListener(marker,'drag', uaktualnijWspolrzedne);
google.maps.event.trigger(marker,'drag');
// zdarzenia dla mapy
google.maps.event.addListener(mapa,'click',function(event)
{
marker.setPoint(event);
uaktualnijWspolrzedne();
});
}
function uaktualnijWspolrzedne()
{
var input_lat = document.getElementById('lat');
var input_lng = document.getElementById('lng');
var punkt = marker.getLatLng();
input_lat.value = punkt.lat();
input_lng.value = punkt.lng();
}
google.maps.event.addDomListener(window, 'load', mapaStart);
</script>
marker.setPoint(event);
не получится, придется делатьmarker.setPoint(event.latLng);
- person duncan   schedule 26.11.2014