从数据库中获取标记并显示在谷歌地图上
fetch markers from database and display on google map
我有一个谷歌地图,工作良好的静态值,显示不同的地方与不同的颜色标记。但是,我希望使此动态并从数据库
获取标记的位置。数据库结构应该是这样的
id latitude longitude status
1 -33.890542 151.274856 1
2 -33.923036 151.259052 1
3 -34.028249 151.157507 2
4 -33.80010 151.28747 1
5 -33.950198 151.259302 2
我希望状态为1的位置是一种颜色,状态为2的位置是另一种颜色。
目前我拥有的代码是
var locations = [
['<h4>Bondi Beach</h4>', -33.890542, 151.274856],
['<h4>Coogee Beach</h4>', -33.923036, 151.259052],
['<h4>Cronulla Beach</h4>', -34.028249, 151.157507],
['<h4>Manly Beach</h4>', -33.80010128657071, 151.28747820854187],
['<h4>Maroubra Beach</h4>', -33.950198, 151.259302]
];
// Setup the different icons and shadows
var iconURLPrefix = 'http://maps.google.com/mapfiles/ms/icons/';
var icons = [
iconURLPrefix + 'red-dot.png',
iconURLPrefix + 'green-dot.png',
iconURLPrefix + 'blue-dot.png',
iconURLPrefix + 'orange-dot.png',
iconURLPrefix + 'purple-dot.png',
iconURLPrefix + 'pink-dot.png',
iconURLPrefix + 'yellow-dot.png'
]
var iconsLength = icons.length;
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: new google.maps.LatLng(-37.92, 151.25),
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false,
streetViewControl: false,
panControl: false,
zoomControlOptions: {
position: google.maps.ControlPosition.LEFT_BOTTOM
}
});
var infowindow = new google.maps.InfoWindow({
maxWidth: 160
});
var markers = new Array();
var iconCounter = 0;
// Add the markers and infowindows to the map
for (var i = 0; i < locations.length; i++) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map,
icon: icons[iconCounter]
});
markers.push(marker);
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
iconCounter++;
// We only have a limited number of possible icon colors, so we may have to restart the counter
if(iconCounter >= iconsLength) {
iconCounter = 0;
}
}
function autoCenter() {
// Create a new viewpoint bound
var bounds = new google.maps.LatLngBounds();
// Go through each...
for (var i = 0; i < markers.length; i++) {
bounds.extend(markers[i].position);
}
// Fit these bounds to the map
map.fitBounds(bounds);
}
autoCenter();
有没有人能告诉我如何才能根据数据库的状态获取标记的位置,并根据纬度和经度的状态分配不同的颜色
Google Maps是一个客户端API。您的标记存储在服务器端数据库
别搞混了。
使用标准的服务器端技术,输出一个JavaScript变量和你的位置变量:
<?php
$locationsString = '[';
for ($i = 0; $i < count($locations); $i++) {
if ($i > 0) {
$locationsString .= ', ';
}
$locationsString .= '[' . $locations['title'] . ', ' .
$locations['lat'] . ', ' . $locations['lng'] . ']';
}
echo '<script>var locations="' . $locationsString . '";</script>';
?>
这个基本思想几乎有无数的变化。例如,可以通过AJAX调用检索变量数据。
相关文章:
- 无法在JS中显示谷歌地图
- 在Delphi TWebBrowser中按地址显示谷歌地图
- 使用来自URL的JSON数据来显示谷歌地图标记-如何
- 逐步显示谷歌地图方向
- OpenLayers显示谷歌地图
- firefox中没有显示谷歌地图
- 如何通过JavaScript代码显示谷歌地图并在设备上获取坐标
- 显示谷歌地图点击事件 - 谷歌地图API
- 切换隐藏/显示谷歌地图标记
- Odoo-在弹出窗口中显示谷歌地图片段
- 从数据库获取所有纬度和长度以显示谷歌地图上的所有位置
- 如何缩放 html5 画布以显示谷歌地图坐标
- 标记标签未显示 - 谷歌地图
- 如何使用模板中的数据显示谷歌地图
- 自定义和原始标记都显示谷歌地图 api v3
- 使用 geoxml3 隐藏/显示谷歌地图中的一些地标
- 显示谷歌地图 API 的骨干/木偶问题
- HIde或显示谷歌地图中的标记
- 如何在Laravel视图页面中动态显示谷歌地图标记
- Phonegap不会在手机中显示谷歌地图