google maps 实现带箭头的线完整实例
注:实例中没有画线,因为画线google API中有,很容易实现,关键是用箭头表示方向。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps JavaScript API Example</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA4ZZxnijCQhlZlf57igoGExTwM0brOpm-All5BF6PoaKBxRWWERR0mYEVnCnlZi8Qmoq3uoivZ9cIgQ"
type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
var map = null;
var arrowIcon = null;
function load() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("mapdiv"));
map.setCenter(new GLatLng(39.917, 116.397), 5);
//箭头图标
arrowIcon = new GIcon();
arrowIcon.iconSize = new GSize(24,24);
arrowIcon.shadowSize = new GSize(1,1);
arrowIcon.iconAnchor = new GPoint(12,12);
arrowIcon.infoWindowAnchor = new GPoint(0,0);
}
var point1 = new GLatLng(39.917, 116.397);
var gmarker = new GMarker(point1);
map.addOverlay(gmarker);
var point2 = new GLatLng(38.017, 116.217);
map.addOverlay(new GMarker(point2));
var point3 = new GLatLng(38.017, 115.217);
map.addOverlay(new GMarker(point3));
var points = [point1,point2,point3];
//arrowHead(points);
midArrows(points);
}
//一个箭头
function arrowHead(points)
{
var p1=points[points.length-1];
var p2=points[points.length-2];
var dir = bearing(p2,p1);
var dir = Math.round(dir/3) * 3;
while (dir >= 120) {dir -= 120;}
arrowIcon.image = "http://www.google.com/intl/en_ALL/mapfiles/dir_"+dir+".png";
map.addOverlay(new GMarker(p1, arrowIcon));
}
//多个箭头
function midArrows(points)
{
if(points.length < 2) return;
for (var i=1; i < points.length; i++)
{
var p1=points[i-1];
var p2=points[i];
var dir = bearing(p1,p2);
var dir = Math.round(dir/3) * 3;
while (dir >= 120) {dir -= 120;}
arrowIcon.image = "http://www.google.com/intl/en_ALL/mapfiles/dir_"+dir+".png";
map.addOverlay(new GMarker(points[i], arrowIcon));
}
}
var degreesPerRadian = 180.0 / Math.PI;
function bearing( from, to )
{
var lat1 = from.latRadians();
var lon1 = from.lngRadians();
var lat2 = to.latRadians();
var lon2 = to.lngRadians();
var angle = - Math.atan2( Math.sin( lon1 - lon2 ) * Math.cos( lat2 ), Math.cos( lat1 ) * Math.sin( lat2 ) - Math.sin( lat1 ) * Math.cos( lat2 ) * Math.cos( lon1 - lon2 ) );
if ( angle < 0.0 )
angle += Math.PI * 2.0;
angle = angle * degreesPerRadian;
angle = angle.toFixed(1);
return angle;
}
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="mapdiv" style="width: 800px; height: 600px"></div>
</body>
</html>
分享到:
相关推荐
在这个特定的例子中,我们将深入探讨如何使用谷歌地图API来实现运动轨迹的绘制以及在轨迹上添加箭头指示方向。 首先,我们需要在网页上加载谷歌地图API。这通常通过在HTML文件中插入一个JavaScript标签来完成,其中...
Google地图上的标签和箭头这是一个非常简单的库,可以帮助您在Google Map顶部放置一些带有箭头的标签,如下所示:用法首先,将LabelingManager的实例添加到google.maps.Map的实例。 之后,您可以根据需要创建...
在IT行业中,Google地图API是开发人员常用的工具之一,它允许我们通过JavaScript来与Google地图进行交互,实现各种自定义功能。在这个特定的场景中,我们关注的是如何使用Google地图JavaScript API来展示站点标识,...
Callouts通常包含一个指向被标注对象的箭头或指示线,以及一个包含详细信息的小窗口。本篇文章将深入探讨如何在Android应用中实现callout功能。 一、Android Callout基础 在Android中,callout可以使用自定义View...
通过学习和分析ARCarMovement这个示例项目,开发者不仅可以掌握ARKit和Google Maps API的结合使用,还能了解到如何在Swift中实现高效、互动的AR导航应用。此外,这个项目也是一个很好的实践案例,有助于提升在Swift...
`GMapOptions`类是Google Maps API中一个非常重要的组成部分,它主要用于为`GMap2`类的构造函数提供一系列可选参数,帮助开发者更灵活地配置地图的各种属性。 - **属性介绍** - **size**:此属性用于设定地图的...
Google Maps的AR导航功能就是一个很好的实例,它将指示箭头叠加在真实环境中,帮助用户更直观地找到方向。实现AR地图需要: 1. 获取摄像头权限:在AndroidManifest.xml中添加CAMERA权限。 2. 集成ARCore:Google的AR...
3. **添加到地图**:将创建好的MarkerWithLabel对象添加到Google Maps实例的地图对象上,通过`map.addOverlay`方法实现。 4. **事件处理**:可以绑定鼠标事件监听器,比如`click`或`mouseover`,以便在用户与标记...
"ARNavigationWithGoogleMaps"不仅展示了AR技术在导航领域的应用潜力,也为开发者提供了一个学习和实践ARKit、Google Maps API及MVVM架构的实例。在未来,随着AR技术的进一步发展,类似的应用将在更多场景中发挥重要...
var latLng = new google.maps.LatLng(aa[1], aa[0]); var infoWindow = new google.maps.InfoWindow({ content: "当前位置: 经度:" + pos.lat + " 维度:" + pos.lng }); infoWindow.setPosition...
这种效果常见于许多应用程序中,如Google Maps、Facebook等,允许用户从屏幕边缘滑动以显示额外的选项或功能。 DrawerLayout是属于`android.support.v4.widget`包的一部分,它支持Android的Material Design设计...
而`DrawerLayout`则是一个侧滑抽屉式菜单,常用来实现类似Google Maps那样的导航栏,可以轻松地从屏幕边缘滑出或隐藏。 `ToolBar`是Android应用中的主要导航元素,它可以显示应用的标题、图标、操作按钮等。开发者...
13. **地图插件**:集成Google Maps或其他地图服务,实现地理位置相关的交互功能。 压缩包中的文件如`dir.htm`、`main.htm`、`index-frameset.htm`、`index.htm`可能是目录页或示例页面,它们可能展示了所有特效的...
1. 选择地图库:有许多地图库可供选择,如Google Maps SDK、Apple的MapKit或开源的Mapbox。在这里,我们以MapKit为例,它是iOS开发中的内置地图解决方案。 2. 添加地图视图:在Xcode项目中,你需要在故事板或代码中...
9. **第三方库和API**:如Google Maps API、Social分享按钮等可能被集成,为网站添加额外的功能。 10. **错误处理和调试**:使用console.log、try/catch等手段进行代码调试,确保网站在各种情况下能稳定运行。 总的...
为了实现地图效果,可能采用了SVG(可缩放矢量图形)或者外部API如Google Maps API,允许用户点击各个州进行选择。 在游戏逻辑方面,开发者可能会使用Angular的生命周期钩子,如ngOnInit和ngOnChanges,来初始化...
为了实现这些功能,Weparty可能需要集成第三方地图API,如Google Maps或高德地图,用于地理编码、反编码以及距离计算等。 此外,Weparty还需要一个稳定可靠的数据库系统来存储用户信息、社交关系、活动数据等。...
为了显示餐厅的位置,项目可能集成了Google Maps API或其他类似服务。通过JavaScript API,可以在页面上嵌入地图,设置标记以指示餐厅的具体位置,还可以添加交互功能,如缩放、平移等。 6. **图库** 图库可能是...
为了展示疫情在地理上的分布,项目可能使用了Google Maps API或者Mapbox等地图服务,将疫情数据以标记或热力图的形式展示在地图上。 **测试与调试** React Native提供了模拟器和真机调试工具,开发者可以通过它们...
- **地图API**:如Google Maps或OpenStreetMap,用于显示地理位置和相关数据。 - **异步编程**:使用Promise或async/await处理异步操作,如等待API响应。 - **路由管理**:如果项目包括多个页面,可能使用了如...