Hey tout le monde! Je tente d'utiliser getlatlng () à Geocode une liste des codes postaux / postal et de stocker le point généré dans la base de données à placer sur une carte plus tard. C'est ce que j'ai jusqu'à présent: mais je reçois de ma recherche, je comprends que Comment puis-je enregistrer les informations de Mise à jour forte> p> Création d'un marqueur et essayer de poster que les résultats suivants dans le ** Une autre mise à jour ** p> J'ai vraiment besoin de sauvegarder l'adresse géocodée pour plus tard, même si je stocke la latitude / Valeurs de longitude dans ma base de données et refaire le marqueur lorsque je suis prêt à le mettre sur une carte. Encore une fois, sérialiser ou poster - apparemment en utilisant le point de quelque manière que ce soit autre que dans Google Maps Fonctions fournit le J'utilise ASP.NET MVC - Y a-t-il des cadres là-bas qui faciliterait cela? J'ai vraiment besoin d'aide avec ça. Merci. P> p> ceci.lat n'est pas une fonction code> dans ma console d'erreur lorsque j'essaie de sérialiser le objet point ou utilisez-le dans
$. POST () code> p>
géocoder.getlatlng () code> est asynchrone, comment affecter ce que j'essaie de faire? Je n'exécute pas ce code dans une boucle et j'essaie de poster le point à l'aide de la fonction de rappel anonyme. P>
point code> pour utiliser plus tard? p>
ne sont pas une fonction code> dans la console d'erreur. p>
Ceci.LAT n'est pas une fonction code> Exception de mon journal d'erreur. P>
5 Réponses :
Vous devez définir un marqueur sur la carte, qui prend un lat / long. Vous pouvez enregistrer cette information mais vous voulez ou afficher immédiatement. (Code tronqué pour le but de démonstration)
Je pense qu'il utilise l'API Google Map V2 basé sur le GClientGeocoder
D'accord, les résultats seraient donc pointus pour moi et son tableau? Ainsi, les résultats [0] seraient Y et les résultats [1] seraient x? Parce que cela ne me permet pas de sauvegarder des résultats. Ou puis-je sauver le marqueur?
Désolé, merci à @ kjy112 qui a remarqué que vous utilisez v2. Toutefois, pour v3 les résultats [0] code> est simplement le résultat supérieur de la recherche et des résultats
[0] .GEOMETRY.LOCATION CODE> est la complète / gnng du sommet résultat.
Ah, d'accord - alors ... que dois-je faire pour v2?
:( Je reçois toujours ceci.lat n'est pas une fonction code>
NON Où dans votre code ou mon code est là un this.lat code>. Êtes-vous sûr que ce n'est pas quelque part ailleurs causant la question. Vous un débogueur JS pour trouver la ligne offensante.
Son provenant de la ligne 278 dans http://maps.gstatic.com/intl/en_all/mapfiles/310c/maps2.api/ main.js code>
Je ne devrais-je pas juste passer à v3? Cela résoudrait-il tout cela?
:( La mise à niveau vers le code plus récent jette la même erreur. Erreur: this.lat n'est pas un fichier source de fonction: http://maps.gstatic.com/intl/en_us/mapfiles/API-3/4/9 /main.j S Ligne: 11 Code>
Ensuite, vous avez quelque chose d'autre qui va mal. J'ai posté mon extrait initial du code de production de travail.
Mais je dois l'enregistrer d'une manière ou d'une autre, et c'est là que l'exception est lancée, sur le post. Vous m'avez montré comment placer un point sur une carte. Je n'ai pas de carte ici.
Pour l'enregistrer, vous devez le mettre dans une sorte de DataStore, DB, Cookie, etc.
Merci BUD, je pensais que: D. Mais j'ai besoin de le poster sur mon serveur afin de le sauvegarder à mon dB et de lancer le this.lat code> Exception lorsque j'essaie de sérialiser ou de poster le résultat.
C'est un problème différent et vous devez afficher le code concerné pour votre sérialisation et votre publication.
J'ai fait, dans ma question initiale. $. Param (point) code> Serialise un objet, et j'ai mon message post commenté. Les deux jettent l'erreur.
Si vous êtes coincé pendant 2 jours peut-être qu'un nouveau départ v3 serait une bonne chose, ce qui ressort un travail de Similair pour moi ...
function GetLocation(address) { var geocoder = new google.maps.Geocoder(); geocoder.geocode({ 'address': address }, function (results, status) { if (status == google.maps.GeocoderStatus.OK) { ParseLocation(results[0].geometry.location); } else alert('error: ' + status); }); } } function ParseLocation(location) { var lat = location.lat().toString().substr(0, 12); var lng = location.lng().toString().substr(0, 12); //use $.get to save the lat lng in the database $.get('MatchLatLang.ashx?action=setlatlong&lat=' + lat + '&lng=' + lng, function (data) { // fill textboss (feedback purposes only) //with the found and saved lat lng values $('#tbxlat').val(lat); $('#tbxlng').val(lng); $('#spnstatus').text(data); }); }
Toute raison que vous utilisez $ .get () au lieu de $ .post ()
Je lie les cartes Google V3 à l'aide de
"Toute raison que vous utilisez $ .get () au lieu de $ .post ()" "" Pas vraiment, juste parce que ce n'est qu'une petite quantité de données ...
Avez-vous essayé cela? Je n'ai pas utilisé V2 dans une longue période, je ne suis donc pas sûr de la syntaxe exacte, mais le but est de créer un objet de Les informations dont vous avez besoin (Lat / GNL) et Serialize que em>. p> En outre, une mise à niveau vers V3 est très recommandée, si plausible. P> P>
en V3 Les coordonnées doivent être d'abord sérialisées en tant que chaîne, comme indiqué par Arnoldiuss, avant d'envoyer des données publications JSON. P>
var lat = latlong.lat (). Tostring (). Substr (0, 12); var lng = letlong.lng (). Tostring (). Substr (0, 12); P>
<html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <%@ taglib prefix="s" uri="/struts-tags"%> <script type="text/javascript" src="http://maps.google.com/maps/api/js?key=AIzaSyDS1d1116agOa2pD9gpCuvRDgqMcCYcNa8&sensor=false"></script> <script type="text/javascript"> function initialize() { var latitude = document.getElementById("latitude").value; latitude = latitude.split(","); var longitude = document.getElementById("longitude").value; longitude = longitude.split(","); var locName = document.getElementById("locName").value; locName = locName.split(","); var RoadPathCoordinates = new Array(); RoadPathCoordinates.length = locName.length; var locations = new Array(); locations.length = locName.length; var infowindow = new google.maps.InfoWindow(); var marker, i; var myLatLng = new google.maps.LatLng(22.727622,75.895719); var mapOptions = { zoom : 16, center : myLatLng, mapTypeId : google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions); //To Draw a line for (i = 0; i < RoadPathCoordinates.length; i++) RoadPathCoordinates[i] = new google.maps.LatLng(latitude[i],longitude[i]); var RoadPath = new google.maps.Polyline({ path : RoadPathCoordinates, strokeColor : "#FF0000", strokeOpacity : 1.0, strokeWeight : 2 }); //Adding Marker to given points for (i = 0; i < locations.length; i++) locations[i] = [locName[i],latitude[i],longitude[i],i+1]; for (i = 0; i < locations.length; i++) {marker = new google.maps.Marker({ position : new google.maps.LatLng(locations[i][1], locations[i][2]), map : map }); //Adding click event to show Popup Menu var LocAddress =""; google.maps.event.addListener(marker, 'click', (function(marker, i) { return function() { GetAddresss(i); //infowindow.setContent(locations[i][0]); infowindow.setContent(LocAddress); infowindow.open(map, marker); } })(marker, i));} function GetAddresss(MarkerPos){ var geocoder = null; var latlng; latlng = new google.maps.LatLng(latitude[MarkerPos],longitude[MarkerPos]); LocAddress = "91, BAIKUNTHDHAAM"; //Intializing just to test //geocoder = new GClientGeocoder(); //not working geocoder = new google.maps.Geocoder(); geocoder.getLocations(latlng,function () { alert(LocAddress); if (!response || response.Status.code != 200) { alert("Status Code:" + response.Status.code); } else { place = response.Placemark[0]; LocAddress = place.address; } }); } //Setting up path RoadPath.setMap(map); } </script> </head> <body onload="initialize()"> <s:form action="mapCls" namespace="/"> <s:hidden key="latitude" id="latitude"/> <s:hidden key="longitude" id="longitude"/> <s:hidden key="locName" id="locName"/> <div id="map_canvas" style="float:left;width:70%;height:100%"></div> </s:form> </body> </html> I am doing reverse Geocoding, and want address of marker using lat and longitude. M facing problem with function "GetAddresss()", line "geocoder.getLocations(latlng,function ()" is not working properly. what should I Do?
Stackoverflow.com/questions/4556602/...