- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在尝试为我的一个大学项目编写一个简单的网络应用程序原型(prototype)。我对 Javascript 还很陌生,并且遇到了一些麻烦。
我创建了一个 map ,在用户当前位置放置一个标记,并在固定点放置一个标记。这是到目前为止的 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 中,这不是问题。
我希望这个问题有意义!
最佳答案
您需要加载几何库
http://maps.googleapis.com/maps/api/js?key=YOURKEY&libraries=geometry
两点之间的距离是它们之间的最短路径的长度。这条最短路径称为测地线。在球体上,所有测地线都是大圆的线段。要计算此距离,请调用 computeDistanceBetween()
向其传递两个 LatLng
对象。
示例:
var a = new google.maps.LatLng(0,0);
var b = new google.maps.LatLng(0,1);
var distance = google.maps.geometry.spherical.computeDistanceBetween(a,b);
距离
将以米为单位的距离。
关于javascript - 使用computeDistanceBetween计算用户当前位置和固定点之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26957593/
用户在 gmap 上绘制圆圈后,我将成为 lastShape 对象: var drawingManager; var lastShape; var map; var markers = []; var
我是 Maps API 的新手,我正在尝试从 2 个地址获取距离(以公里为单位)。这段代码有什么问题? var mygc = new google.maps.Geocoder(); var locat
我已经阅读了一些有关在 google maps API 上计算距离的问题,但仍然不适合我。这是我的代码: function initMap() { var loc1 = new google.m
Google map 几何库中的 computeDistanceBetween() 函数不会为我返回值。使用 alert 函数,它说距离是“[object, Object]”。谁能看到我哪里出错了?以
请参阅下面的代码,我对 javascript 很业余,如果它真的很糟糕,那么抱歉。基本上,我的函数 someFunc() 在通过某些表单获取 eventlocation 和 currentlocati
好的,我已经在测试站点上设置了 map 和自动完成字段。 我的目标是让用户在该字段中输入他/她的地址,然后当他/她点击确认时,根据提供的信息找出离他们最近的商店。 我有每个商店的纬度/经度,在自动完成
Google Maps Android API Utility Library SphericalUtil.computeDistanceBetween() 之间有什么区别?和 Android [Lo
我想以公制形式计算位置之间的直接距离。 (即:从 A 到 B,以公里为单位)。 没看懂computeDistanceBetween方法以单位返回。 谢谢 最佳答案 以米为单位。要转换为公里除以 102
我是一名优秀的程序员,十分优秀!