Google Maps API V3和本地搜索问题 - 空白结果? [英] Google Maps API V3 and Local search problem - empty results?

查看:115
本文介绍了Google Maps API V3和本地搜索问题 - 空白结果?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试实施Maps API V3和本地搜索,但我似乎遇到了问题。不知何故, OnLocalSearch()函数中的结果是空的。

I am trying to implement a Maps API V3 and Local Search but I seem to be having problems. Somehow, the results in the OnLocalSearch() function is empty.

以下是我的完整代码:

Here is my complete code:

<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>

仅供参考,我以此为例,现在我坚持了几个小时: http:// gmaps-samples-v3。 googlecode.com/svn-history/r136/trunk/localsearch/places.html

FYI, I am using this as an example and I am stuck for a few hours now about this: http://gmaps-samples-v3.googlecode.com/svn-history/r136/trunk/localsearch/places.html

任何回复将不胜感激。

问候,
Wenbert

Regards, Wenbert

更新我在这里犯了一个错误:

UPDATE I made a mistake somewhere here:

<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&region=PH"></script>

另外,请确保您仔细检查您正在进行地理编码的地址。我来自菲律宾,Google似乎只对主要道路进行地理编码。请参阅 http://gmaps-samples.googlecode.com/svn/trunk/mapcoverage_filtered .html

Also, make sure you double check the address you are geocoding. I am from the Philippines and it seems that Google only geocodes Major Roads. See http://gmaps-samples.googlecode.com/svn/trunk/mapcoverage_filtered.html

感谢来自irc.geekshed.net的jgeerdes #googleapis

Thanks to jgeerdes from irc.geekshed.net #googleapis

推荐答案

只需进行一些调整,以便代码实际完成,并且使用我知道的地址将成功进行地址解析,再加上我知道的查询将返回一些内容,您的代码就可以正常工作。以下是我所做的:

Just making a couple of tweaks so that the code is actually complete, and using an address I know will be geocoded successfully plus a query I know will return something, your code works. Here is what I did:

<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>

这篇关于Google Maps API V3和本地搜索问题 - 空白结果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆