Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从MySQL数据库加载热图Latling和谷歌地图API_Javascript_Mysql_Google Maps_Google Maps Api 3_Coordinates - Fatal编程技术网

Javascript 从MySQL数据库加载热图Latling和谷歌地图API

Javascript 从MySQL数据库加载热图Latling和谷歌地图API,javascript,mysql,google-maps,google-maps-api-3,coordinates,Javascript,Mysql,Google Maps,Google Maps Api 3,Coordinates,我有地理信息系统项目。我想从GoogleMapsAPI使用GoogleHeatmap创建一个热点犯罪地图。我在MySQL数据库中有一大堆关于犯罪地点(包括纬度和经度)的数据。我已经阅读了谷歌地图API文档示例: 这里有一个使用函数getPoints()创建热图的示例,但是使用LatLng硬编码,而不是从数据库创建热图。有没有可能将LatLng从SQL数据库和数组加载到新的google.maps.LatLng 这是我的热图谷歌地图API源代码: 切换热图 变化梯度 改变半径 改变不透明度 va

我有地理信息系统项目。我想从GoogleMapsAPI使用GoogleHeatmap创建一个热点犯罪地图。我在MySQL数据库中有一大堆关于犯罪地点(包括纬度和经度)的数据。我已经阅读了谷歌地图API文档示例:

这里有一个使用函数getPoints()创建热图的示例,但是使用LatLng硬编码,而不是从数据库创建热图。有没有可能将LatLng从SQL数据库和数组加载到新的google.maps.LatLng

这是我的热图谷歌地图API源代码:


切换热图
变化梯度
改变半径
改变不透明度
var图、热图;
函数initMap(){
map=new google.maps.map(document.getElementById('map'){
缩放:2,
中心:{lat:51.508530,lng:-0.076132},
mapTypeId:'卫星'
});
heatmap=新建google.maps.visualization.HeatmapLayer({
数据:getPoints(),
地图:地图
});
}
函数toggleHeatmap(){
heatmap.setMap(heatmap.getMap()?null:map);
}
函数changeGradient(){
var梯度=[
'rgba(0,255,255,0)',
'rgba(0,255,255,1)',
'rgba(0,191,255,1)',
'rgba(0,127,255,1)',
'rgba(0,63,255,1)',
'rgba(0,0,255,1)',
"rgba(0,0223,1)",,
‘rgba(0,0191,1)’,
"rgba(0,0,159,1)",,
'rgba(0,0,127,1)',
"rgba(63,0,91,1)",,
"rgba(127,0,63,1)",,
"rgba(191,0,31,1)",,
'rgba(255,0,0,1)'
]
heatmap.set('gradient',heatmap.get('gradient')?null:gradient);
}
函数changeRadius(){
heatmap.set('radius',heatmap.get('radius')?null:20);
}
函数changeOpacity(){
heatmap.set('opacity',heatmap.get('opacity')?null:0.2);
}
//这就是我的意思,有没有可能从数据库加载这些内容?
函数getPoints(){
返回[
新google.maps.LatLng(40.761916,-73.9228569),
新的google.maps.LatLng(42.35047,-71.07613),
新google.maps.LatLng(42.3456382751,-71.0715713501),
新的google.maps.LatLng(42.3429222107,-71.078666687),
新的google.maps.LatLng(42.3450012207,-71.0808029175),
新的google.maps.LatLng(42.3429222107,-71.078666687),
新google.maps.LatLng(42.35521698,-71.0732955933),
新google.maps.LatLng(42.35521698,-71.0732955933),
新google.maps.LatLng(42.3903999329,-71.1128997803),
新的google.maps.LatLng(42.3641662598,-71.0299758911),
新google.maps.LatLng(43.6952018738,-79.28598754),
新google.maps.LatLng(40.742790222,-73.9834136963),
新的google.maps.LatLng(43.6991958618,-79.2756347656),
新google.maps.LatLng(41.9590682983,-87.7312164307)
]
}

是的,您需要执行以下操作:

  • 创建一个服务器端脚本,该脚本连接到数据库并在lat lng表上运行查询
  • 创建php代码,将结果格式化为json数组,并将其作为json发送到浏览器
  • 在客户端进行ajax调用,从url获取此json
  • 一旦ajax返回了有效结果,只需对其进行迭代,如果需要,将其格式化为与getPoints函数中所需的类似对象,而不是返回长数组,只需返回该对象即可
  • 触发贴图刷新函数(您需要编写此函数)可能基于包含您在4中创建的对象的参数,然后执行所有贴图函数

  • 下面是一个从数据库中获取坐标的示例:hello@duncan是的,我已经成功地从MySQL数据库中创建了多个标记,但是对于这个热图情况,可能没有什么不同,特别是在LatLng声明上,所以sql数据库必须通过php代码转换为Json格式?可以使用node或任何服务器端技术进行转换。您需要在服务器上执行SQL语句,然后格式化输出。