fusion table google maps infowindow return 特定列
fusion table google maps infowindow return specific column
我正在使用融合 table 向 javascript 中的 google 地图添加一层多边形(区域线)。但我想在信息窗口上显示,当您单击地图上的多边形时,特定列而不是当前默认显示的所有列值。
这是我的代码,我得到了 return 一些位置信息。默认信息窗口被禁用。那么在点击事件中,如何引用融合table?
layer = new google.maps.FusionTablesLayer({
suppressInfoWindows: true,
query:{
from:tableid,
select: 'geometry'
},
styles:[{polygonOptions:{fillOpacity:0.01}}
],
options: {
styleId: 2,
templateId: 2
}});
layer.setOptions({query:{select:'geometry',
from: tableid}});
layer.setMap(map);
google.maps.event.addListener(layer, 'click', function(event) {
alert(event.latLng.lat() + ", " + event.latLng.lng());
});
我的融合 table 有一个名为 ID 的列,当我单击多边形时,我应该只会看到关联的 ID 号。
已尝试执行此操作但未显示任何内容:
e.infoWindowHtml = "ID" + e.row['ID'].value;
谢谢。
FusionTablesMouseEvent 包含对包含单击多边形的 table 行的引用。
google.maps.event.addListener(layer, 'click', function(event) {
infoWindow.setContent(event.row["ID"].value);
infoWindow.setPosition(event.latLng);
infoWindow.open(map);
});
代码片段:
var tableid = "1foc3xO9DyfSIF6ofvN0kp2bxSfSeKog5FbdWdQ"
var infoWindow;
function initialize() {
var map = new google.maps.Map(
document.getElementById("map_canvas"), {
center: new google.maps.LatLng(37.4419, -122.1419),
zoom: 3,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
infoWindow = new google.maps.InfoWindow();
layer = new google.maps.FusionTablesLayer({
suppressInfoWindows: true,
query: {
from: tableid,
select: 'geometry'
},
styles: [{
polygonOptions: {
fillOpacity: 0.01
}
}],
options: {
styleId: 2,
templateId: 2
}
});
layer.setOptions({
query: {
select: 'geometry',
from: tableid
}
});
layer.setMap(map);
google.maps.event.addListener(layer, 'click', function(event) {
console.log(event.row["name"].value);
console.log(event.latLng.toUrlValue(6));
infoWindow.setContent(event.row["name"].value);
infoWindow.setPosition(event.latLng);
infoWindow.open(map);
});
}
google.maps.event.addDomListener(window, "load", initialize);
html,
body,
#map_canvas {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id="map_canvas"></div>
我正在使用融合 table 向 javascript 中的 google 地图添加一层多边形(区域线)。但我想在信息窗口上显示,当您单击地图上的多边形时,特定列而不是当前默认显示的所有列值。
这是我的代码,我得到了 return 一些位置信息。默认信息窗口被禁用。那么在点击事件中,如何引用融合table?
layer = new google.maps.FusionTablesLayer({
suppressInfoWindows: true,
query:{
from:tableid,
select: 'geometry'
},
styles:[{polygonOptions:{fillOpacity:0.01}}
],
options: {
styleId: 2,
templateId: 2
}});
layer.setOptions({query:{select:'geometry',
from: tableid}});
layer.setMap(map);
google.maps.event.addListener(layer, 'click', function(event) {
alert(event.latLng.lat() + ", " + event.latLng.lng());
});
我的融合 table 有一个名为 ID 的列,当我单击多边形时,我应该只会看到关联的 ID 号。
已尝试执行此操作但未显示任何内容:
e.infoWindowHtml = "ID" + e.row['ID'].value;
谢谢。
FusionTablesMouseEvent 包含对包含单击多边形的 table 行的引用。
google.maps.event.addListener(layer, 'click', function(event) {
infoWindow.setContent(event.row["ID"].value);
infoWindow.setPosition(event.latLng);
infoWindow.open(map);
});
代码片段:
var tableid = "1foc3xO9DyfSIF6ofvN0kp2bxSfSeKog5FbdWdQ"
var infoWindow;
function initialize() {
var map = new google.maps.Map(
document.getElementById("map_canvas"), {
center: new google.maps.LatLng(37.4419, -122.1419),
zoom: 3,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
infoWindow = new google.maps.InfoWindow();
layer = new google.maps.FusionTablesLayer({
suppressInfoWindows: true,
query: {
from: tableid,
select: 'geometry'
},
styles: [{
polygonOptions: {
fillOpacity: 0.01
}
}],
options: {
styleId: 2,
templateId: 2
}
});
layer.setOptions({
query: {
select: 'geometry',
from: tableid
}
});
layer.setMap(map);
google.maps.event.addListener(layer, 'click', function(event) {
console.log(event.row["name"].value);
console.log(event.latLng.toUrlValue(6));
infoWindow.setContent(event.row["name"].value);
infoWindow.setPosition(event.latLng);
infoWindow.open(map);
});
}
google.maps.event.addDomListener(window, "load", initialize);
html,
body,
#map_canvas {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id="map_canvas"></div>