您正在使用googleCharts https://developers.google.com/chart/interactive/docs/gallery/geochart 我需要将GeoHash设置为列以进行绘图,但我尝试并且此时正在进行工作 凭借纬度和经度,它的作品
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript" src="<?php echo base_url();?>assets/js/script.js"></script>
<script type="text/javascript">
google.charts.load('upcoming', {'packages': ['geochart']});
google.charts.setOnLoadCallback(drawMarkersMap);
function drawMarkersMap() {
var data = new google.visualization.DataTable();
data.addColumn('number', 'Latitude');
data.addColumn('number', 'Longitude');
data.addColumn('string', 'Label');
data.addColumn('number', 'Value 1');
data.addColumn('number', 'Value 2');
data.addRows([
[-22.764042, -43.39921, 'Foo', 2.86, 4],
[-22.755635, -43.460325, 'Bar', 5, 2],
[-22.912897, -43.200295, 'Baz', 0.50, 1],
[-22.805776, -43.37292, 'Cad', 6.67, 2],
[-23.532905, -46.63952, 'Qud', 33.33, 5]
]);
var chart = new google.visualization.GeoChart(document.getElementById('chart_div'));
chart.draw(data, {
width: 600,
region: 'BR',//rgiomn
colorAxis: {colors: ['green', 'blue']} //color de transicion
});
};
</script>
但如果我尝试使用geohash,请在控制台上显示此错误:
drawMarkersMap - cargamapa:72ReferenceError:找不到变量: gbsuv
我的vars
data.addRows([
['gbsuv', 'Foo', 2.86, 4],
['gbsuv', 'Bar', 5, 2],
['gbtst' 'Baz', 0.50, 1],
]);
答案 0 :(得分:2)
请分享变量的价值......
gbsuv, gbtst, gbtse
如果它们是数组([]
),那么尝试...
data.addRows([
[gbsuv[0], gbsuv[1], 'Foo', 2.86, 4],
[gbsuv[0], gbsuv[1], 'Bar', 5, 2],
[gbtst[0], gbtst[1], 'Baz', 0.50, 1],
[gbtse[0], gbtse[1], 'Cad', 6.67, 2]
]);
编辑
地图可视化的data format不支持 geohash
支持两种数据格式:
1。 Lat-Long对 - 前两列应分别是指定纬度和经度的数字。可选的第三列包含一个字符串,该字符串描述前两列中指定的位置。
2. 字符串地址 - 第一列应该是包含地址的字符串。这个地址应该尽可能完整。可选的第二列包含一个描述第一列中位置的字符串。字符串地址加载速度更慢,尤其是当您有超过10个地址时。
但是,您可以使用诸如...之类的库来解码 geohash 。
调用函数 - &gt; Geohash.decode(geohash)
将返回一个包含lat
和lon
var gbsuv = Geohash.decode('gbsuv');
data.addRows([
[gbsuv.lat, gbsuv.lon, 'Foo', 2.86, 4],
...
]);