0

これは私を困惑させています。Googleマップのジオコーディングを使用して場所を検索しています。私はここでグーグルからの例を使おうとしていますが、それは私にとってはうまくいきません。


エラー:

http://maps.gstatic.com/intl/en_us/mapfiles/159e/maps2.api/main.js174

目varpoint= new GLatLng(、);


コード:

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key='.$config['locations.gMaps.key'].'" type="text/javascript"></script>
<script src="http://www.google.com/uds/api?file=uds.js&v=1.0&key='.$config['locations.gMaps.key'].'" type="text/javascript"></script>
<script src="http://www.google.com/uds/solutions/localsearch/gmlocalsearch.js" type="text/javascript"></script>

<style type="text/css">
    @import url("http://www.google.com/uds/css/gsearch.css");
    @import url("http://www.google.com/uds/solutions/localsearch/gmlocalsearch.css");
</style>
<script type="text/javascript">

    function addListener(element, baseName, handler) {
        if (element.addEventListener)
            element.addEventListener(baseName, handler, false);
        else if (element.attachEvent)
            element.attachEvent("on"+baseName,handler);
    }
    
    var map'.$num.';    
    
    function initialize'.$num.'() 
    {
    
        if (GBrowserIsCompatible()) 
        {
            map'.$num.' = new GMap2(document.getElementById("google_map'.$num.'"),{mapTypes:[G_HYBRID_MAP]});
            var point = new GLatLng('.$row->LocationLat.','.$row->LocationLon.');
            map'.$num.'.setCenter(new GLatLng('.$row->LocationLat.','.$row->LocationLon.'),4);
            var mapControl = new GMapTypeControl();
            map'.$num.'.addControl(mapControl);
            map'.$num.'.addControl(new GLargeMapControl());
            map'.$num.'.addControl(new GOverviewMapControl());
            map'.$num.'.enableDoubleClickZoom();
            map'.$num.'.enableScrollWheelZoom();
            var bounds = new GLatLngBounds;
            
            var myIcon = new GIcon();
            myIcon.image = "http://www.google.com/mapfiles/marker.png";
            myIcon.iconAnchor = new GPoint((markerImage1.width/2),markerImage1.height);
            
            
            
            bounds.extend(point);
            setBounds(map'.$num.',bounds);                              
            
            var address = "' . $address . '";
            
            
            var geocoder = new GClientGeocoder();
            showAddress(address, geocoder);
            
        }
    }
    
    function showAddress(address, geocoder) {
      geocoder.getLatLng(
        address,
        function(point) {
          if (!point) {
            alert(address + " not found");
          } else {
            map'.$num.'.setCenter(point, 13);
            var marker = new GMarker(point);
            map'.$num.'.addOverlay(marker);
            marker.openInfoWindowHtml(address);
          }
        }
      );
    }

                
    function setBounds(map'.$num.',bounds) 
    {
        map'.$num.'.setZoom(15);
        map'.$num.'.setCenter(bounds.getCenter());
    }                   

    function chargement() 
    {   
        markerImage1 = new Image(); 
        markerImage1.src = "http://www.google.com/mapfiles/marker.png";
        setTimeout("initialize'.$num.'()", 500); 
    }

    addListener(window, "load", chargement);
</script>

私のコードはPHPによって生成されているので、'がある場合は、JavaScriptを保持している文字列を開いたり閉じたりしていることを意味します。

4

4 に答える 4

1

たぶん私はそれを取得できませんでしたが

var point = new GLatLng(,);

有効なJavaScriptではありません

どちらかである必要があります

var point = new GLatLng(param1, param2);

また

var point = new GLatLng();

また

var point = new GLatLng(null,null);

...GLatLngコンストラクターが何であるかに応じて

于 2009-07-07T17:53:45.033 に答える
0

html+jsに出力するphp文字列が最初に存在するかどうかを確認してください。phpはhtmを生成し、それをユーザーに送信します。今のところ、htm+javascriptの問題です。これはjavascriptの問題のように見えますが、問題のあるものを印刷しようとして空のスペースが印刷されたため、最初からphpで間違った構文を生成しました。常にそれに注意し、何を印刷するかを確認してください。

于 2009-07-29T14:12:33.470 に答える
0

この文:

var point = new GLatLng(,);

latまたはlng番号が指定されていないため、正しくありません。これは、次のステートメントが原因です。

var point = new GLatLng('.$row->LocationLat.','.$row->LocationLon.');

間違っている。私は次のようなことを試してみます:

var point = new GLatLng(<?php echo $row->LocationLat . ',' . $row->LocationLon; ?>);

それが機能しない場合は、$row->LocationLatまたは$row->LocationLon空である可能性があります。

于 2009-07-07T17:55:28.273 に答える
0

問題 1- 関数showAddress()が閉じていません。

showAddress()問題 2 -アクセスできるように、マップ オブジェクトを関数の外部で定義する必要があります。

問題 3 - 内部のマップ オブジェクトへの参照showAddress()が正しくない

于 2009-07-07T18:03:28.493 に答える