我正在尝试为我的Google地图添加自定义融合表样式。与此类似:https://developers.google.com/maps/documentation/javascript/examples/layer-fusiontables-styling
我想根据分配给它的特定值为国家着色让我们说0 =绿色,50 =黄色,100 =红色。
我在这里设置了一个Fusion表:https://www.google.com/fusiontables/DataSource?docid=1tJkzVXTv-B2-rFeQVO9bX_vICCvJ9Xq1LU6xog5f
我能够在这里获得理想的结果,但不能在我的代码中实现。
我正在使用Google Maps API V3和GWT。
private void setupFusionTablesLayer(final MapWidget mapWidget) {
final String select = "geometry";
final String from = "1tJkzVXTv-B2-rFeQVO9bX_vICCvJ9Xq1LU6xog5f";
final String where = "risk >= 0";
final FusionTablesStyle fusionTablesStyle = FusionTablesStyle
.newInstance();
final FusionTablesPolygonOptions polygonOptions = FusionTablesPolygonOptions
.newInstance();
polygonOptions.setFillColor("#505050"); // grey
polygonOptions.setFillOpacity(0.3);
fusionTablesStyle.setPolygonOptions(polygonOptions);
final FusionTablesQuery query = FusionTablesQuery.newInstance();
query.setSelect(select);
query.setFrom(from);
query.setWhere(where);
final FusionTablesLayerOptions options = FusionTablesLayerOptions
.newInstance();
options.setQuery(query);
final JsArray arr = JavaScriptObject.createArray().cast();
arr.push(fusionTablesStyle);
options.setStyles(arr);
final FusionTablesLayer layer = FusionTablesLayer.newInstance(options);
layer.addClickHandler(new FusionTablesMouseMapHandler() {
@Override
public void onEvent(final FusionTablesMouseMapEvent event) {
event.getInfoWindowHtml();
final LatLng latlng = event.getLatLng();
event.getPixelOffset();
event.getRow();
final String json = event.getRowAsJson();
GWT.log("click on " + latlng.getToString() + " json=" + json);
}
});
layer.setMap(mapWidget);
}
这是我到目前为止所做的:
我不知道为什么它全是红色!!
请帮助。
感谢
修改#1 我做了代码更改,并能够将整个地图颜色更改为灰色。 但仍然不确定如何获得风险列的价值并按国家/地区颜色更新。