【问题标题】:Google Maps Api Fusion Table select geometry where name equals variableGoogle Maps Api Fusion Table 选择名称等于变量的几何图形
【发布时间】:2017-06-14 23:50:13
【问题描述】:

基本上我想将 inputValue 变量传递到融合表查询中,以找到列“名称”的值等于 inputValue 的几何。

我只需要知道这应该怎么写。任何帮助将不胜感激。代码如下:

jQuery(document).ready(function($) {

//   function init() {

var baseLatLng = new google.maps.LatLng(52.7713,-1.5550);
var newLatLng;

var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 12,
    center: baseLatLng
});

var searchOptions = {
    center: baseLatLng,
    mapTypeID: 'roadmap',
    componentRestrictions: {country: "uk"}
};

var input = document.getElementById('search');

var autocomplete = new google.maps.places.Autocomplete(input, searchOptions);

var inputValue = document.getElementById('search').value;

var geocoder = new google.maps.Geocoder();

$("#go").click(function(event) {
    event.preventDefault();
    geocodeAddress(geocoder);
    layer.setMap(map);

});


function geocodeAddress(geocoder) {
    var address = document.getElementById('search').value;
    geocoder.geocode({address: address, region: 'uk'}, function(results, status) {
        if (status === 'OK') {
        } else {
            alert('Geocode was not successful for the following reason: ' + status);
        }
        var latitude = results[0].geometry.location.lat();
        var longitude = results[0].geometry.location.lng()
        newLatLng = latitude + ',' + longitude;
        document.getElementById('results').innerHTML = "latitude:" + latitude + "<br>" + "longitude:" + longitude;

    });
}

var layer = new google.maps.FusionTablesLayer({
    query: {
        select: 'Geometry',
        from: 'xxxx',
        where: "'Name' = inputValue" ---HERE!
    },
    styles: [{
        polygonOptions: {
            fillColor: '#00FF00',
            fillOpacity: 0.3
        }
    }]
});
});

谢谢, 奥利

【问题讨论】:

  • 您的“姓名”列是数字类型。
  • 我可以选择这样的边界: where: "'Name' = 'Derbyshire'" 但我想用搜索变量替换县
  • 搜索变量与列中的名称不匹配。

标签: javascript jquery google-maps-api-3 google-fusion-tables


【解决方案1】:

想出了解决办法。以后我会把它留在这里给任何人。

function getBoundry() {
        var address = document.getElementById('search').value;
        var query = "\"\'Name\' =  " + "\'" + address + "\'" + '\"'; 

        var layer = new google.maps.FusionTablesLayer({
            query: {
                select: 'Geometry',
                from: 'xxxxx',
                where: query
            },
            styles: [{
                polygonOptions: {
                    fillColor: '#00FF00',
                    fillOpacity: 0.3
                }

            }]

        });
        layer.setMap(map);
    }

然后在点击事件中调用函数。

$("#go").click(function(event) {
        event.preventDefault();
        getBoundry();

    });

【讨论】:

    猜你喜欢
    • 2013-01-16
    • 1970-01-01
    • 2015-03-06
    • 2013-06-24
    • 2013-01-08
    • 1970-01-01
    • 2015-04-26
    • 1970-01-01
    • 2013-10-25
    相关资源
    最近更新 更多