关于google地图轨迹,描点轨迹图的问题啊,急,帮帮忙啊。。

灰太狼已不再单身 2011-09-18 09:43:09
我数据库有些数据,从GPS轨迹记录仪上面导出来了。已知经度和纬度。我要做的是转换为xy,描点,画轨迹。图片如下:






我有几个问题:
1.大家帮忙看看,我的XY的值计算错没?!XY我是除了10000的。
2.为什么第二张图,利用XY来画轨迹图,是那样的??怎么不是和google map的轨迹一样?!
3.google 地图上,我想画成线条,不要定位的这个标识,有人知道怎么控制那个小图标怎么显示吗?

大家帮忙看看,不甚感激。。。
...全文
840 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wl2bmayan 2013-11-20
  • 打赏
  • 举报
回复
大神,能把XML文件发上来吗?
sunming23 2011-11-28
  • 打赏
  • 举报
回复
请问XML文件的格式是怎么样的?
  • 打赏
  • 举报
回复
完成了。。读取的xml的数据。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var xmlname = "";
var cenlat = "30.575504";
var cenlgn = "104.058922";
getxmlname(); //获取xml文件名
function initialize() {
var myOptions = {
zoom: 16,
center: new google.maps.LatLng(cenlat, cenlgn),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
// 这里填上轨迹的经纬坐标,或者ajax从后台读取
/*
var trackPoints = [
new google.maps.LatLng(30.575504, 104.058922),
new google.maps.LatLng(30.575512, 104.058968),
new google.maps.LatLng(30.575520, 104.058968),
new google.maps.LatLng(30.575527, 104.058968),
new google.maps.LatLng(30.575537, 104.058968)
];
*/
var trackPoints = new Array();
var xdoc = new ActiveXObject("Microsoft.XMLDOM");
xdoc.async = "true";
xdoc.load(xmlname);
var nodes = xdoc.getElementsByTagName("coor");
for (var i = 0; i < nodes.length; i++) {
if (i == 0) {
cenlat = nodes[i].getAttribute("lat");
cenlgn = nodes[i].getAttribute("lgn");
}
trackPoints[i] = new google.maps.LatLng(nodes[i].getAttribute("lat"), nodes[i].getAttribute("lgn"));
}
//alert(trackPoints);
var trackPath = new google.maps.Polyline({
path: trackPoints,
strokeColor: "#FF0000", // 线条颜色
strokeOpacity: 1.0, // 线条透明度
strokeWeight: 3 // 线条粗细
});

trackPath.setMap(map);
}
function getxmlname() {
var xdoc = new ActiveXObject("Microsoft.XMLDOM");
xdoc.async = "true";
xdoc.load('defaultmapdata.xml');
nodes = xdoc.getElementsByTagName("filename");
xmlname = nodes[0].getAttribute("name")
//alert(xmlname);
}
</script>
</head>
<body onload="initialize()" style="margin: 0px; padding: 0px;">
<form id="form1" runat="server">
<div align="center" id="map_canvas" style="margin: 0px; padding: 0px; margin-top: 4px;
margin-left: 4px; height: 760px;">
</div>
</form>
</body>
</html>

  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jshi123 的回复:]

你用的第2版API,google已经弃用API V2, 建议你用V3来写
下面的图就是根据你的数据用上面的代码显示出来的效果,没有问题
[/Quote]

谢了,我已经用你的方法搞出来了
jshi123 2011-09-19
  • 打赏
  • 举报
回复
你用的第2版API,google已经弃用API V2, 建议你用V3来写
下面的图就是根据你的数据用上面的代码显示出来的效果,没有问题

  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jshi123 的回复:]

在google地图上画线条可以用Google Maps API中的折线叠加层
http://code.google.com/intl/zh-CN/apis/maps/documentation/javascript/overlays.html#Polylines
JScript code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans……
[/Quote]
我用了这个,页面显示的是空白的啊- 我今天也试过了
好像是 <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
这句不行
  • 打赏
  • 举报
回复

var templatlng = '';
for (var i = 0; i < markers.length; i++) {
var templl = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lgn")));
if (i < markers.length - 1) {
templl = templl + ",";
}
templatlng += templl;

if (i % 10 == 0) {
//标识
var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lgn")));
var newMarker = new GMarker(latlng);
me.startListener_(); // 启动监听
//me.map_.addOverlay(newMarker); //加载定位标识
}
}
//alert(templatlng);
//var polyline = new GPolyline([new GLatLng(30.575504, 104.058922), new GLatLng(30.575512, 104.058968), new GLatLng(30.575520, 104.058968)], "#FF0000", 5);
var polyline = new GPolyline([templatlng], "#FF0000", 5);
map.addOverlay(polyline);


为什么这样就不行呢?!
  • 打赏
  • 举报
回复
[c#]
var templatlng = '';
for (var i = 0; i < markers.length; i++) {
var templl = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lgn")));
if (i < markers.length - 1) {
templl = templl + ",";
}
templatlng += templl;

if (i % 10 == 0) {
//标识
var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lgn")));
var newMarker = new GMarker(latlng);
me.startListener_(); // 启动监听
//me.map_.addOverlay(newMarker); //加载定位标识
}
}
//alert(templatlng);
//var polyline = new GPolyline([new GLatLng(30.575504, 104.058922), new GLatLng(30.575512, 104.058968), new GLatLng(30.575520, 104.058968)], "#FF0000", 5);
var polyline = new GPolyline([templatlng], "#FF0000", 5);
map.addOverlay(polyline);
[/c#]

为什么没效果呢。 。。这样组合
xuxubaby 2011-09-19
  • 打赏
  • 举报
回复
关注~
jshi123 2011-09-18
  • 打赏
  • 举报
回复
在google地图上画线条可以用Google Maps API中的折线叠加层
http://code.google.com/intl/zh-CN/apis/maps/documentation/javascript/overlays.html#Polylines

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function initialize() {
var myOptions = {
zoom: 16,
center: new google.maps.LatLng(30.575504, 104.058922),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
// 这里填上轨迹的经纬坐标,或者ajax从后台读取
var trackPoints = [
new google.maps.LatLng(30.575504, 104.058922),
new google.maps.LatLng(30.575512, 104.058968),
new google.maps.LatLng(30.575520, 104.058968),
new google.maps.LatLng(30.575527, 104.058968),
new google.maps.LatLng(30.575537, 104.058968),
...
];

var trackPath = new google.maps.Polyline({
path: trackPoints,
strokeColor: "#FF0000", // 线条颜色
strokeOpacity: 1.0, // 线条透明度
strokeWeight: 2 // 线条粗细
});

trackPath.setMap(map);
}
</script>
</head>
<body onload="initialize()">
<form id="form1" runat="server">
<div id="map_canvas" style="width:1000px; height:700px;"></div>
</form>
</body>
</html>

  • 打赏
  • 举报
回复
var polyline = new GPolyline([
new GLatLng(37.4419, -122.1419),
new GLatLng(37.4519, -122.1519),
new GLatLng( 37.4619, -122.1819)
], "#FF0000", 10);
map.addOverlay(polyline);

这个中间部分,怎么变成数组。 。我有很多个点。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧