我试图在美国和加拿大创建一个“服务区域”的谷歌地图,无意中发现了这种融合表层的东西&认为它会产生很好的效果,但我有问题。
这是我的代码:
<script>
function initMap() {
// Styles a map in night mode.
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 40.237395466608156, lng: -93.68512878417971},
zoom: 3.9,
styles: []
});
var usa_geometry = new google.maps.FusionTablesLayer({
query: {
select: 'geometry',
from: '1ZZ8j0NDbs2dilcQWjLh9xI7qIJso6DgYAoGTbA',
where: "STATE IN ('North Dakota', 'Minnesota', 'Wisconsin', 'Ohio', 'Indiana', 'Iowa', 'Illinois', 'Kentucky', 'Missouri', 'Tennessee', 'Arkansas', 'Florida', 'Alabama', 'Mississippi', 'Louisiana', 'Texas', 'Oklahoma', 'Kansas', 'Nebraska', 'South Dakota')",
},
styles: [
{
polygonOptions: {
fillColor: "#006db7",
strokeColor: "#006db7",
fillOpacity: ".5",
},
}],
map: map,
suppressInfoWindows: true
});
var canada_geometry = new google.maps.FusionTablesLayer({
query: {
select: 'geometry',
from: '1auwG6s4axorHR-QAX3UDXL544pSEXlbxmyu6xvJC',
where: "Place IN ('Quebec', 'Ontario', 'Manitoba')",
},
styles: [
{
polygonOptions: {
fillColor: "#006db7",
strokeColor: "#006db7",
fillOpacity: ".5",
},
}],
map: map,
suppressInfoWindows: true
});
};
</script>所以:
发布于 2018-04-07 00:09:01
有没有一种在本地使用融合表多边形数据的方法?即输出CSV并加载?
是的,是融合表可以作为KML下载。,您可以使用第三方应用程序/库(如toGeoJson )作为GeoJSON在应用程序中加载。
是否有一种方法可以在一个映射层中从(连接)2个融合表加载数据?
您必须将通过融合表UI合并这些表放入一个融合表中并加载该层。
还有别的选择我忽略了吗?
是的,因为你的信息的第一部分是不正确的:“我不能创建一个融合表&在不向google付费的情况下使其公开……”
您可以创建公开或未上市融合表,而无需支付谷歌的费用。
此外,当您转到您的在UI中创建的融合表,选择Tools->Publish并选择"Get和JavaScript“时,您将看到以下用于FusionTablesLayer的无文档选项"options”
layer = new google.maps.FusionTablesLayer({
map: map,
heatmap: { enabled: false },
query: {
select: "col12",
from: "1ClpNLfPQnhEex1KvGg5FrHPgzXgSu1ZvFEL9a2l1",
where: ""
},
options: {
styleId: 2,
templateId: 2
}
});您可以使用该options覆盖Javascript应用的默认样式,并使用您在融合表UI中定义的样式。
下面是一个简单样本JSBin,显示在usa_geometry的Javascript中定义的融合表样式,而在canada_geometry的融合表UI中定义的融合表样式:

https://stackoverflow.com/questions/49700388
复制相似问题