将谷歌地图放在数据库的中心?
Posted
技术标签:
【中文标题】将谷歌地图放在数据库的中心?【英文标题】:Center Google Map on point from database? 【发布时间】:2010-05-11 13:08:09 【问题描述】:我正在尝试将谷歌地图集中在从数据库中提取的单个标记上,到目前为止我所做的是使用此函数从数据库中获取单个标记
function getMarkers()
var urlstr="readsingle.php?v=<?php echo $cam ?>";
var request = GXmlHttp.create();
request.open('GET', urlstr , true); // request XML from PHP with AJAX call
request.onreadystatechange = function ()
if (request.readyState == 4) // 4 is a completed request
var xmlDoc = request.responseXML;
locations = xmlDoc.documentElement.getElementsByTagName("location");
markers = [];
if (locations.length)
for (var i = 0; i < locations.length; i++) // cycle thru locations
markers[i] = new GMarker(new GLatLng(locations[i].getAttribute("lat"),locations[i].getAttribute("lng")));
markers[i].infowindow = "This is "+locations[i].getAttribute("name");
markers[i].markerindex = i;
markers[i].db_id = locations[i].getAttribute("location_id");
map.addOverlay(markers[i]);
request.send(null);
还有这个函数来加载地图
function onLoad()
map = new GMap(document.getElementById("div_map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(53.76221, -2.71227), 8);
map.enableScrollWheelZoom();
getMarkers();
GEvent.addListener(map, "click", function(overlay, point)
if (overlay) // marker clicked
overlay.openInfoWindowhtml(overlay.infowindow); // open InfoWindow
else if (point) // background clicked
);
如何更改此行的 Lat Lng 值
map.setCenter(new GLatLng(53.76, -2.71), 5);
匹配来自单个标记的 lat lng 值?还是有更简单的方法从数据库中提取单个标记并将地图居中放置?
【问题讨论】:
【参考方案1】:如果getMarkers()
只检索一个标记,看起来您可以简单地添加:
map.setCenter(new GLatLng(locations[i].getAttribute("lat"),
locations[i].getAttribute("lng")), 5);
在将标记添加到地图之后或之前:
map.addOverlay(markers[i]);
【讨论】:
干杯,没有意识到我可以在 getmarkers 函数中设置它以上是关于将谷歌地图放在数据库的中心?的主要内容,如果未能解决你的问题,请参考以下文章
不能将谷歌地图 GMSMapView 放在主视图的子视图中?