0

ST_DISTANCE の変数を数値ではなく変数に設定する際に問題があります。私の目標は、フュージョン テーブルのエントリをクライアントまでの距離で並べ替え、最も近い 3 つだけを表示することです。

(また、ウィンドウをズームアウトしてそれらのポイントを包含し、クライアントの場所を指すようにしたいと思います。ヒントやいくつかのリソースへのリンクをいただければ幸いです)。

Google マップ、Fusion Tables、Geolocation コードは次のとおりです。

<script type="text/javascript">
(function() {   
    if(!!navigator.geolocation) {       
        var map;
        var mapOptions = {
            zoom: 15,
            mapTypeId: google.maps.MapTypeId.ROADMAP,
        };          
        navigator.geolocation.getCurrentPosition(function(position) {           
            var geolocate = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
            map.setCenter(geolocate);           
        });
        map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions)

        layer = new google.maps.FusionTablesLayer({
            map: map,
            heatmap: { enabled: false },
            query: {
                select: "col1",
                from: "1JaRXQJ_YJch5Ua6cfZCBpaUEKRnd2jIcHVmcODY",
                orderBy: 'ST_DISTANCE(col1, LATLNG("geolocate"))',
                limit: 3,
                where: ""
            },
            options: {
                styleId: 2,
                templateId: 2
            }
        });

    } else {
    map = new google.maps.Map(document.getElementById('map-canvas'), {
            center: new google.maps.LatLng(39.918487877955485, -98.30599773437501),
            zoom: 15,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        });     
        layer = new google.maps.FusionTablesLayer({
            map: map,
            heatmap: { enabled: false },
            query: {
                select: "col1",
                from: "1JaRXQJ_YJch5Ua6cfZCBpaUEKRnd2jIcHVmcODY",
                where: ""
            },
            options: {
                styleId: 2,
                templateId: 2
            }

        });     
    }

})();
google.maps.event.addDomListener(window, 'load', initialize);
</script>

私はこれが厄介であることを知っています。私はジャバスクリプトを知りません。

以下によって作成された変数「geolocate」を配置する方法を知りたいです。

navigator.geolocation.getCurrentPosition(function(position) {           
        var geolocate = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
        map.setCenter(geolocate);           
});

次の場所にある LATLNG に移動します。

var layer = new google.maps.FusionTablesLayer({
    query: {
        select: 'Address',
        from: '15UY2pgiz8sRkq37p2TaJd64U7M_2HDVqHT3Quw',
        orderBy: 'ST_DISTANCE(Address, LATLNG(37.4,-122.1))',
        limit: 3
}

どんな助けでも大歓迎です。

4

1 に答える 1

0

これは基本的なJavaScriptの質問です...

var map のように geolocate をグローバルにします。

var map;
var geolocate;

既存の geolocate の前にある var を削除します。

次に、geolocate の使用に関する引用符を削除します。

orderBy: 'ST_DISTANCE(col1, LATLNG(' + geolocate + ') )',
于 2013-04-25T14:35:57.740 に答える