【发布时间】:2015-01-13 11:22:12
【问题描述】:
我目前正在尝试为我的一个大学项目编写一个简单的网络应用原型。我对 Javascript 还很陌生,遇到了一些麻烦。
我创建了一个地图,在用户当前位置放置一个标记,并在一个固定点放置一个标记。到目前为止,这是 Javascript:
var map;
function load() {
var myOptions = {
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map"), myOptions);
navigator.geolocation.getCurrentPosition(displayOnMap);
}
var pin;
function displayOnMap(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
var initialLocation = new google.maps.LatLng(latitude, longitude);
map.setCenter(initialLocation);
var marker = new google.maps.Marker({
map: map,
position: initialLocation,
});
loadMarkers();
}
function loadMarkers() {
var xmlMarkersRequest = new XMLHttpRequest();
xmlMarkersRequest.onreadystatechange = function() {
if (xmlMarkersRequest.readyState === 4) {
var xml = xmlMarkersRequest.responseXML;
var markersArray = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markersArray.length; i++) {
var id = Number(markersArray[i].getAttribute("id"));
var latitude = markersArray[i].getAttribute("latitude");
var longitude = markersArray[i].getAttribute("longitude");
var point = new google.maps.LatLng(
parseFloat(latitude),
parseFloat(longitude));
var marker2 = new google.maps.Marker({
map: map,
position: point,
zIndex: id
});
}
}
}
xmlMarkersRequest.open('GET', 'markers.xml', false);
xmlMarkersRequest.send(null);
}
这里的一切都完全按照我想要的方式工作。
我只是不确定如何使用 computeDistanceBetween 返回用户初始位置 (initialLocation) 与标记位置之间的距离。
标记信息存储在一个 XML 文件中,因为最初我计划添加多个。但是我的网站只需要一个标记,所以如果我必须将固定标记的信息写入Javascript而不是问题。
我希望这个问题有意义!
【问题讨论】:
-
你能提供一个Minimal, Complete, Tested and Readable example吗?您想要直线(如乌鸦飞翔)距离还是行驶距离? XML 示例以及您如何在发布的代码中调用函数的示例将很有用。
标签: javascript google-maps google-maps-api-3 geolocation