studio - Google Maps API V3 y problema de búsqueda local: ¿resultados vacíos?
mapview android studio ejemplo (1)
Estoy intentando implementar Maps API V3 y Local Search, pero parece que tengo problemas. De alguna manera, los resultados en la función OnLocalSearch () están vacíos.
Aquí está mi código completo:
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
// do stuff when DOM is ready
var geocoder = new google.maps.Geocoder();
var address = ''{{string_location}}'';
var map;
// Our global state for LocalSearch
var gInfoWindow;
var gSelectedResults = [];
var gCurrentResults = [];
var gLocalSearch = new GlocalSearch();
if (geocoder) {
geocoder.geocode({ ''address'': address }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
//alert(results[0].geometry.location.lat())
//alert(results[0].geometry.location.lng())
//Create the Map and center to geocode results latlong
var latlng = new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng());
var myOptions = {
zoom: 14,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
gLocalSearch.setSearchCompleteCallback(this, OnLocalSearch);
gLocalSearch.execute("{{business_item.name}}");
}
else {
alert(''No results found. Check console.log()'');
console.log("Geocoding address: " + address);
console.log("Geocoding failed: " + status);
}
});
}
/*
Other functions
*/
function OnLocalSearch() {
if (gLocalSearch.results[0]) { //This is empty. Why?
var resultLat = gLocalSearch.results[0].lat;
var resultLng = gLocalSearch.results[0].lng;
var point = new GLatLng(resultLat,resultLng);
callbackFunction(point);
}else{
alert("not found!");
}
}
});
//]]>
</script>
FYI, estoy usando esto como un ejemplo y estoy estancado por unas pocas horas sobre esto: http://gmaps-samples-v3.googlecode.com/svn-history/r136/trunk/localsearch/places.html
Cualquier respuesta será muy apreciada.
Saludos, Wenbert
ACTUALIZAR Cometí un error en algún lugar aquí:
<script src="http://www.google.com/uds/api?file=uds.js&v=1.0" type="text/javascript"><;/script>
<script src="http://maps.google.com/maps/api/js?v=3.1&sensor=false®ion=PH"></script>
Además, asegúrese de verificar dos veces la dirección que está geocodificando. Soy de Filipinas y parece que Google solo geocodifica Major Roads. Consulte http://gmaps-samples.googlecode.com/svn/trunk/mapcoverage_filtered.html
Gracias a jgeerdes de irc.geekshed.net #googleapis
Solo haciendo un par de ajustes para que el código esté realmente completo, y usando una dirección que conozco se geocodificará con éxito más una consulta que sé que devolverá algo, tu código funciona. Aquí esta lo que hice:
<html>
<head>
<title>Wenbert test</title>
<script src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
//<![CDATA[
google.load(''jquery'',''1.4.2'');
google.load(''maps'',''3'',{other_params:''sensor=false''});
google.load(''search'',''1'');
alert(''starting...'');
$(document).ready(function() {
alert(''here'');
// do stuff when DOM is ready
var geocoder = new google.maps.Geocoder();
var address = ''4019 lower beaver rd. 50310'';
var map;
// Our global state for LocalSearch
var gInfoWindow;
var gSelectedResults = [];
var gCurrentResults = [];
var gLocalSearch = new GlocalSearch();
if (geocoder) {
geocoder.geocode({ ''address'': address }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
//alert(results[0].geometry.location.lat())
//alert(results[0].geometry.location.lng())
//Create the Map and center to geocode results latlong
var latlng = new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng());
var myOptions = {
zoom: 14,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
gLocalSearch.setSearchCompleteCallback(this, OnLocalSearch);
gLocalSearch.execute("debra heights wesleyan church");
}
else {
alert(''No results found. Check console.log()'');
console.log("Geocoding address: " + address);
console.log("Geocoding failed: " + status);
}
});
}
/*
Other functions
*/
function OnLocalSearch() {
if (gLocalSearch.results[0]) { //This is empty. Why?
var resultLat = gLocalSearch.results[0].lat;
var resultLng = gLocalSearch.results[0].lng;
var point = new google.maps.LatLng(resultLat,resultLng);
callbackFunction(point);
}else{
alert("not found!");
}
}
});
//]]>
</script>
</head>
<body>
<div id="map_canvas" style="height:100%;"></div>
</body>
</html>