我有一个mySql数据库,包含lat和lng为起始位置和结束位置指定的路线,以及开始的日期和时间。
然后我有一个网页(Classic asp),用户可以使用Google maps api输入日期,时间和位置。
当用户键入某个位置时,我想在数据库中循环,看看是否有任何路由在给定时间内传递了用户位置,然后显示结果,以便他可以选择他喜欢的路线。
我一直在关注isLocationOnEdge,但我无法弄清楚如何使用它以及如何获取价值,以便我可以在我的asp中使用它。
我找到了这段代码,但正如我所说 - 不知道必须使用它以便它适合我的问题:
function initialize() {
var mapOptions = {
zoom: 5,
center: new google.maps.LatLng(24.886, -70.269),
mapTypeId: google.maps.MapTypeId.TERRAIN
};
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
var cascadiaFault = new google.maps.Polyline({
path: [
new google.maps.LatLng(49.95, -128.1),
new google.maps.LatLng(46.26, -126.3),
new google.maps.LatLng(40.3, -125.4)
]
});
var myPosition = new google.maps.LatLng(43.0, -125.9, 10e-7);
if (google.maps.geometry.poly.isLocationOnEdge(myPosition, cascadiaFault)) {
alert("Relocate!");
}
}
google.maps.event.addDomListener(window, 'load', initialize);
任何人都可以帮助我吗?或者只是给出一些我可以遵循的提示?
答案 0 :(得分:0)
好吧,显然google.maps.geometry.poly.isLocationOnEdge(myPosition, cascadiaFault)
会返回一个你可以测试的布尔值,所以我怀疑你只想在JavaScript代码中生成一个值数组,比如...
<%
Dim sql, c, joinLL, rs, conn
sql = "SELECT lat, long, FROM myGeoTable WHERE condition = true "
conn = Application("CONN_STRING")
'Pass the string using RecordSet.GetString...
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open sql, conn
joinLL = "[new google.maps.LatLng(" & _
rs.GetString(2, , ", ", "), new google.maps.LatLng(", "") & _
"]"
rs.Close
Set rs = Nothing
%>
......或许,这样的东西可以测试你的长/拉列表...
// joinLL is the variable from the VB Script...
var pLongLat = <%= joinLL %>;
var llPoint;
foreach(llPoint in pLongLat) {
if(google.maps.geometry.poly.isLocationOnEdge(llPoint, cascadiaFault)) {
//Do your processing
}
}