- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有我的谷歌热图的工作代码。快速了解它的作用:
1) 查询 mysql 数据库以提取所有记录的纬度/经度(最初)2)下拉选择框允许过滤(基本上只是修改PHP中的SQL查询)3)热图是一个Json数组(使用php json_encode($SQL_Results))
所以我现在拥有的代码可以完美运行 - 但是,我希望向 map 添加更多内容。
我的问题是 - 是否可以对特定位置的所有结果进行计数(我使用邮政编码生成纬度/经度)并将它们显示在热图上?
一个例子是;位置 x 的 100 个结果......当您放大并消散热图时,它会修改数字。
我曾尝试寻找类似的功能,但只能找到有关向结果添加标记/图像的信息 - 我需要从结果中显示动态数字。
如有任何帮助/建议,我们将不胜感激。
这是我用来创建热图的相关代码:
<?PHP
$LatLng = "select inp.lat, inp.long from locations inp";
$results = db_query($LatLng);
$mapCoords = mysqli_fetch_all($results, MYSQLI_ASSOC);
?>
<script type="text/javascript">
var places = [];
var coords = <?php echo json_encode($mapCoords); ?>;
for (var i = 0; i < coords.length; i++) {
places.push(new google.maps.LatLng(coords[i].lat, coords[i].long));
}
var map, pointarray, heatmap;
var gradient = [
'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, 0, 223, 1)',
'rgba(0, 0, 191, 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)'
];
var Data = places;
function initialize() {
var mapOptions = {
zoom: 6,
center: new google.maps.LatLng(54.892473,-2.932931),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
pointArray = new google.maps.MVCArray(Data);
heatmap = new google.maps.visualization.HeatmapLayer({
data: pointArray,
dissipating: true,
radius: 35
});
heatmap.setMap(map);
heatmap.set('gradient', heatmap.get('gradient') ? null : gradient);
heatmap.set('opacity', '0.9');
}
google.maps.event.addDomListener(window, 'load', initialize);
</SCRIPT>
最佳答案
因此,我认为我采用了错误的方法 - 我最初的想法是从数据库中提取返回行的计数并显示带有动态文本的自定义标记。我找到的解决方案(并且实现起来非常简单!)是使用 MarkerClusterer.js 的 Google 标记聚类。对我来说,我只是下载了 JS,在我的代码中指向它并添加了以下内容:
<script type="text/javascript" src="MarkerClusterer.js"></script>
var places = [];
var markers = [];
var coords = <?php echo json_encode($mapCoords); ?>;
for (var i = 0; i < coords.length; i++) {
places.push(new google.maps.LatLng(coords[i].lat, coords[i].long));
var latLng = new google.maps.LatLng(coords[i].lat, coords[i].long);
var marker = new google.maps.Marker({'position': latLng});
markers.push(marker);
}
`
最后设置集群并添加一些选项:
var mcOptions = {gridSize: 50, maxZoom: 15};
var markerCluster = new MarkerClusterer(map, markers, mcOptions);
差不多就是这样 - 当我放大时,我得到了计数的变化,现在我只需要使用信息窗口处理自定义标记。希望这对处于相同情况的其他人有所帮助。
关于javascript - 谷歌热图包括点数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29948018/
我有一个问题需要分而治之解决。有一个包含 N 个点的集合 S。如果有一个平行于轴的正方形,只包含S中的两个点p1和p2,则我们称p1和p2为 friend 点。 现在,我需要使用分而治之算法来计算 S
为 iPad 编程时,字体(和其他)大小以“磅”为单位指定。我已经看到将点作为独立于屏幕分辨率的像素的引用。但是我无法确定一个点的实际大小(即以英寸为单位)。一个点是否等于标准 iPad 屏幕上的一个
我有一个来自 Hadley Wickham 的 ggplot2 书中的问题。 我在这里有这个数据框: class % group_by(class) %>% summarise(n = n
好的,这是一些代码( pdfDocument 是 com.itextpdf.text.Document ): PdfPTable table = new PdfPTable(1); PdfPCell
我正在尝试添加一个 if 语句,如果小于 17,则将另一张牌添加到 DealerHand 中。 目前,它只是记录: 7 19 [ { suit: '♦', value: 9, points: 9 },
我正在编写一个程序,我需要: 对图像的每个像素进行测试 如果测试结果为真,我必须向点云中添加一个点 如果测试结果为假,什么都不做 我已经在 CPU 端 C++ 上编写了一个工作代码。现在我需要使用 C
我是一名优秀的程序员,十分优秀!