【高德地图API】如何制作自己的旅游地图?

简介: 原文:【高德地图API】如何制作自己的旅游地图? “旅行的梦想并不遥远,只要一颗流浪四方的心。”——唐人立。 最早认识唐人立的时候,他还是大二的学生。他独自完成了“南京20年规划地图”。几年前,他完成了自己的第一本著作,逃学去旅行《一个人走世界——大学4年200城的旅行》。

原文:【高德地图API】如何制作自己的旅游地图?

旅行的梦想并不遥远,只要一颗流浪四方的心。”——唐人立

最早认识唐人立的时候,他还是大二的学生。他独自完成了“南京20年规划地图”。几年前,他完成了自己的第一本著作,逃学去旅行《一个人走世界——大学4年200城的旅行》。而现在,他正执行着他的“辞职去旅行”计划。他好心的老板还多给他发了一个月的工资。从南京,到台湾,从曼谷到斯里兰卡……2个月来,唐人立走过太多地方。是他原创的图片和文字,让我渐渐对自助游产生了兴趣,并决定记录下旅游的每一刻。

于是,我开始着手制作了这个旅行地图。可能它还不够完善,但的确它能给我们带来太多的正能量。希望有越来越多的人,能够用这种方式,去记录自己的旅途。THX。

 

 

代码其实很简单,简单的地图展示,简单的覆盖物,简单的信息窗口。

你要做的,其实只是申请一个key:

然后将下面的代码复制到你的网站上,并使用你自己的key。

 

第一步、地图展示

中心点坐标可以通过坐标拾取工具来找:

地图级别在国内建议12-18,国外建议在4-6.

var mapObj;  
//初始化地图对象,加载地图  
function mapInit(){  
    mapObj = new AMap.Map("iCenter",{center:new AMap.LngLat(121.498586,31.239637),  
        level:17});   
    addBuildings();  
}  

 

第二步、添加覆盖物

覆盖物,就是marker,这里用的默认的覆盖物。蓝色的,挺好看。

//实例化点标记  
function addMarker(){  
    marker=new AMap.Marker({                    
    icon:"http://webapi.amap.com/images/marker_sprite.png",  
    position:new AMap.LngLat(116.405467,39.907761)  
    });  
    marker.setMap(mapObj);  //在地图上添加点  
}  

 

第三步、添加信息窗口

信息窗口用了自定义信息窗口,因为觉得兰蓝色的比较好看。

自定义信息窗口,分为3个部分,头,中间,尾巴。

关闭按钮也可以使用自定义图片。

//构建自定义信息窗体   
function createInfoWindow(title,content){  
    var info = document.createElement("div");  
    info.className = "info";  
    // 定义顶部标题  
    var top = document.createElement("div");  
    top.className = "info-top";  
      var titleD = document.createElement("div");  
      titleD.innerHTML = title;  
      var closeX = document.createElement("img");  
      closeX.src = "http://webapi.amap.com/images/close2.gif";  
      closeX.onclick = closeInfoWindow;  
        
    top.appendChild(titleD);  
    top.appendChild(closeX);  
    info.appendChild(top);  
    // 定义中部内容  
    var middle = document.createElement("div");  
    middle.className = "info-middle";  
    middle.innerHTML = content;  
    info.appendChild(middle);  
      
    // 定义底部内容  
    var bottom = document.createElement("div");  
    bottom.className = "info-bottom";  
    var sharp = document.createElement("img");  
    sharp.src = "http://webapi.amap.com/images/sharp.png";  
    bottom.appendChild(sharp);    
    info.appendChild(bottom);  
    return info;  
} 

 

 

第四步、结果面板

结果面板只要是为了鼠标放在上面时,可以打开相应的信息窗口。

HTML结构:

<li><a href="javascript:void(0);" onmouseover="myOpen2();">曼谷a>li>
<li><a href="javascript:void(0);" onmouseover="myOpen();">斯里兰卡a>li>

信息窗口展开代码:

function myOpen(){
    infoWindow.open(mapObj,marker.getPosition());
}
function myOpen2(){
    infoWindow2.open(mapObj,marker2.getPosition());
}

--------------------------------------------------------------------------

全部源代码:

DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>逃学去旅行title>

<link rel="stylesheet" type="text/css" href="http://api.amap.com/Public/css/demo.Default.css" /> 
<script language="javascript" src="http://webapi.amap.com/maps?v=1.2&key=【您的key】">script>
<style>
#iCenter{float:left;width:600px;height:600px;}
.infobox{float:left;width:200px;height:600px;text-align:center;padding:10px 0;background:#efefef;}
.infobox h1{margin:0 0 20px;}
.infobox li a{text-decoration:none;font-size:20px;width:100%;display:block;padding:30px 0;border:1px dashed #ccc;border-width:1px 0;}
.infobox li a:hover{background:#ccc;}
style>
head>
<body onLoad="mapInit()"> 
    <div id="iCenter">div>        <div class="infobox">        <h1>逃学去旅行2h1>        <ul>            <li><a href="javascript:void(0);" onmouseover="myOpen2();">曼谷a>li>            <li><a href="javascript:void(0);" onmouseover="myOpen();">斯里兰卡a>li>        ul>    div> div> body> <script language="javascript"> var mapObj,toolBar; var marker,marker2; //初始化地图对象,加载地图 function mapInit(){    mapObj = new AMap.Map("iCenter",{center:new AMap.LngLat(88.505859,21.371244),level:4});    //地图中添加地图操作ToolBar插件     mapObj.plugin(["AMap.ToolBar"],function(){              toolBar = new AMap.ToolBar();        mapObj.addControl(toolBar);        });        //地图初始化时,在地图上添加一个marker标记,鼠标点击marker可弹出自定义的信息窗体     addMarker();     } //添加marker标记 function addMarker(){   mapObj.clearMap();   marker = new AMap.Marker({                           map:mapObj,                         position:new AMap.LngLat(79.914551,6.871893), //位置-斯里兰卡         icon:"http://webapi.amap.com/images/0.png" //复杂图标           });   marker2 = new AMap.Marker({                           map:mapObj,                         position:new AMap.LngLat(100.546875,13.731381), //位置-曼谷         icon:"http://webapi.amap.com/images/0.png" //复杂图标           });   AMap.event.addListener(marker,'mouseover',function(){ //鼠标点击marker弹出自定义的信息窗体          infoWindow.open(mapObj,marker.getPosition());     });     AMap.event.addListener(marker2,'mouseover',function(){ //鼠标点击marker弹出自定义的信息窗体          infoWindow2.open(mapObj,marker2.getPosition());     });   } //实例化信息窗体 var infoWindow = new AMap.InfoWindow({        isCustom:true,  //使用自定义窗体         content:createInfoWindow('斯里兰卡  采茶人',"尽管斯里兰卡人民并不富裕,但是他们对生活很满足。每一个微笑的斯里兰卡人的脸上,更多的是他们对待生活的热情。@唐人立逃学去旅行"),        size:new AMap.Size(300, 0),        offset:new AMap.Pixel(0, -50)//-113, -140     }); var infoWindow2 = new AMap.InfoWindow({        isCustom:true,  //使用自定义窗体         content:createInfoWindow('曼谷  泰国泼水节',"如果说青春是一场说走就走的旅行,那么泰国的泼水节才更好地诠释着什么是青春。一起疯狂吧!@唐人立逃学去旅行"),        size:new AMap.Size(300, 0),        offset:new AMap.Pixel(0, -50)//-113, -140     }); //构建自定义信息窗体  function createInfoWindow(title,content){    var info = document.createElement("div");    info.className = "info";    // 定义顶部标题    var top = document.createElement("div");    top.className = "info-top";      var titleD = document.createElement("div");      titleD.innerHTML = title;      var closeX = document.createElement("img");      closeX.src = "http://webapi.amap.com/images/close2.gif";      closeX.onclick = closeInfoWindow;          top.appendChild(titleD);    top.appendChild(closeX);    info.appendChild(top);    // 定义中部内容    var middle = document.createElement("div");    middle.className = "info-middle";    middle.innerHTML = content;    info.appendChild(middle);        // 定义底部内容    var bottom = document.createElement("div");    bottom.className = "info-bottom";    var sharp = document.createElement("img");    sharp.src = "http://webapi.amap.com/images/sharp.png";    bottom.appendChild(sharp);      info.appendChild(bottom);    return info; }   //关闭信息窗体 function closeInfoWindow(){    mapObj.clearInfoWindow(); } function myOpen(){    infoWindow.open(mapObj,marker.getPosition()); } function myOpen2(){    infoWindow2.open(mapObj,marker2.getPosition()); } script> html>

 


 

效果图:

目录
相关文章
|
8月前
|
缓存 API 定位技术
使用Python调用百度地图API实现地址查询
使用Python调用百度地图API实现地址查询
465 0
|
5月前
|
JavaScript 前端开发 定位技术
百度地图JavaScript API v2.0创建地图
百度地图JavaScript API v2.0创建地图
82 0
|
6月前
|
JavaScript 前端开发 定位技术
vue 使用 vue-jsonp 解决跨域请求问题(访问百度地图API)
vue 使用 vue-jsonp 解决跨域请求问题(访问百度地图API)
323 0
|
7月前
|
域名解析 JavaScript 网络协议
技术心得记录:如何使用google地图的api(整理)
技术心得记录:如何使用google地图的api(整理)
531 0
|
8月前
|
定位技术 API
Angular 调用导入百度地图API接口,2024春招BAT面试真题详解
Angular 调用导入百度地图API接口,2024春招BAT面试真题详解
|
8月前
|
API 定位技术 开发工具
Android Studio2021.1.1 高德地图api调用这一篇就够了
Android Studio2021.1.1 高德地图api调用这一篇就够了
|
8月前
|
数据采集 分布式计算 DataWorks
DataWorks产品使用合集之DataWorks数据地图中的数据发现相关api接口调用如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
74 0
|
8月前
|
JSON JavaScript 定位技术
Vue中使用echarts@4.x中国地图及AMap相关API的使用
Vue中使用echarts@4.x中国地图及AMap相关API的使用
341 0
Vue中使用echarts@4.x中国地图及AMap相关API的使用
|
定位技术 API
百度地图API的使用教程以及案例(二)
百度地图API的使用教程以及案例
|
8月前
|
SQL 存储 DataWorks
DataWorks中API、desc、数据地图,这3个怎么对起来?
DataWorks中API、desc、数据地图,这3个怎么对起来?
96 0

热门文章

最新文章