Google Maps API a.lat不是函数错误
问题描述:
我创建的代码可以通过使用分隔符作为分隔符来协调CSV文件中的数据,并计算两个输入坐标之间的距离。但结果总是显示错误a.lat不是函数。我已经在网上冲浪有关这种特定的错误类型,似乎无法找到正确的解决方案,任何人都可以请帮我解决这个错误。Google Maps API a.lat不是函数错误
这里是我的坐标例如:
-6.168454914420734, 106.7574467
-6.16897225004169, 106.7570443
这里是我的代码:
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=geometry"></script>
<script>
function calcDistance(p1, p2){
return (google.maps.geometry.spherical.computeDistanceBetween(p1, p2)/1000).toFixed(2);
}
function encodeLatLngPolygon(array) {
var polyOptions = {
strokeColor: '#000000',
strokeOpacity: 1.0,
strokeWeight: 3
}
poly = new google.maps.Polyline(polyOptions);
var path = poly.getPath();
for(var i=0;i<array.length;i++) {
var xyz = new google.maps.LatLng(parseFloat(array[i][0]).toFixed(2), parseFloat(array[i][1]).toFixed(2));
path.push(xyz);
}
var code = google.maps.geometry.encoding.encodePath(path)
return code;
}
function readTextFile(file)
{
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, true);
rawFile.onreadystatechange = function()
{
if(rawFile.readyState === 4)
{
if(rawFile.status === 200 || rawFile.status == 0)
{
var allText = rawFile.responseText;
var byline = allText.split('\n');
for(var e=0;e<4;e++){
var coor=byline[e].split(',');
alert(calcDistance(coor[0],coor[1]));
}
}
}
}
rawFile.send(null);
}
function initialize() {
var mapProp = {
center:new google.maps.LatLng(51.508742,-0.120850),
zoom:5,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
readTextFile("DaerahG.csv");
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
<title>kenny</title>
</head>
<body>
<div id="googleMap" style="width:1000px;height:700px; float:left;"></div>
</body>
</html>
答
你传入数字(实际上,字符串)到calcDistanc
功能。它使用google.maps.geometry.spherical.computeDistanceBetween
方法,该方法需要两个google.maps.LatLng
对象(其中有一个.lat()
方法)。您需要计算两个google.maps.LatLng对象之间的距离。
function calcDistance(p1, p2){
return (google.maps.geometry.spherical.computeDistanceBetween(p1, p2)/1000).toFixed(2);
}
for(var e=0;e<4;e++){
var coor=byline[e].split(',');
alert(calcDistance(coor[0],coor[1]));
}
代码片段:
function calcDistance(p1, p2) {
return (google.maps.geometry.spherical.computeDistanceBetween(p1, p2)/1000).toFixed(2);
}
var allText = "-6.168454914420734, 106.7574467\n-6.16897225004169, 106.7570443";
var byline = allText.split('\n');
var path = [];
for (var e = 0; e < byline.length; e++) {
var coor = byline[e].split(',');
path.push(new google.maps.LatLng(coor[0], coor[1]));
if (path.length > 1)
alert(calcDistance(path[0], path[1]));
}
<script src="https://maps.googleapis.com/maps/api/js?libraries=geometry"></script>
谢谢,它实际上确实很好。 – Kenken
如果这回答了你的问题,请[接受它](http://meta.*.com/questions/5234/how-does-accepting-an-answer-work) – geocodezip