GMap reverse geodata automatikus indítása

GMap reverse geodata automatikus indítása
2013-12-28T13:17:40+01:00
2013-12-28T15:00:08+01:00
2022-10-15T23:15:22+02:00
Sandor81
Sziasztok!

Szeretnék reverse geodata-t használni, de úgy, hogy automatikusan kapjam meg a koordinátákat.

Itt a kód hozzá:

<body> <?php $sorbajon=0; $geocodenelkulibejegyzesek=mysql_query("select telid, cim from bejegyzesek where eszakiszelesseg='' limit 10;"); while ($rgeocodenelkulibejegyzesek=mysql_fetch_array($geocodenelkulibejegyzesektesek)) { $varosnev=mysql_query("select megnevezes from telepules where id=" . $rgeocodenelkulibejegyzesek['telid'] . ";"); $rvarosnev=mysql_fetch_array($varosnev); $mystring = $rvarosnev['megnevezes']; $findme = 'kerület'; $pos = strpos($mystring, $findme); if ($pos != false) { $varos='Budapest'; } else { $varos=$rvarosnev['megnevezes']; } if ($varos=='') { $varos='Budapest'; } ?> <input id="address_<?php echo $sorbajon; ?>" type="textbox" value="<?php echo $rgeocodenelkulibejegyzesek['cim']; ?>, <?php echo $varos; ?>, Hungary" size="100" /><br /> <input type="button" value="Geocode" onmouseover="codeAddress_<?php echo $sorbajon; ?>()" onclick="codeAddress_<?php echo $sorbajon; ?>()" onfocus="codeAddress_<?php echo $sorbajon; ?>()" /><br /><br /> <script type="text/javascript"> var geocoder; var map; function initialize() { geocoder = new google.maps.Geocoder(); var latlng = new google.maps.LatLng(-34.397, 150.644); var mapOptions = { zoom: 8, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP } map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); } function codeAddress_<?php echo $sorbajon; ?>() { var address = document.getElementById('address_<?php echo $sorbajon; ?>').value; geocoder.geocode( { 'address': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { map.setCenter(results[0].geometry.location); var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location }); alert(results[0].geometry.location); } else { alert('Geocode was not successful for the following reason: ' + status); } }); } google.maps.event.addDomListener(window, 'load', initialize); </script> <?php $sorbajon=$sorbajon+1; } ?> <script type="text/javascript">window.onload=codeAddress_<?php echo $sorbajon; ?>()</script> <div id="map-canvas"></div> </body>

Az a helyzet, hogy itt létrejönnek az input-ok, valamint a gombok is, és, ha fölé viszem az egeret, vagy megnyomom a gombot, akkor meg is kapom a koordinátákat, viszont ezt nem szeretném kézzel csinálni, mivel nagyon sok sorról van szó.

Előre is köszönöm!
Mutasd a teljes hozzászólást!
szerintem egyszerűbb lenne simán php-ból meghívni a geocoding API-t és a json-ból kiszedni, pl:

$url = 'http://maps.googleapis.com/maps/api/geocode/json?address='.urlencode("Mátészalka,Hungary").'&sensor=false'; $tartalom = file_get_contents($url); $json = json_decode($tartalom); echo "Koordináták: ".$json->results[0]->geometry->location->lat.", ".$json->results[0]->geometry->location->lng;

szerk: arra figyelj, hogy vannak limitek - ha ciklusban hívod akkor legyen a két kérés között egy sleep(2), hogy a google ne dobja el a kérésed. Illetve vannak még egyéb limitek is: katt - érdemes átolvasni.
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd