转:谷歌离线地图基础[通俗易懂]

转:谷歌离线地图基础[通俗易懂]一.需要文件gapi3文件夹:存放接口等tilemap文件夹:存放图片gapi.js文件maptool.js文件二.html配置<scripttype="text/javascript"src="gapi.js"></script><scripttype="text/javascript"src="maptool.js">&lt

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一.需要文件

  1. gapi3文件夹:存放接口等
  2. tilemap文件夹:存放图片
  3. gapi.js文件
  4. maptool.js文件

二.html配置

<script type="text/javascript" src="gapi.js"></script>
<script type="text/javascript" src="maptool.js"></script>
  • 1
  • 2

三.使用

html中使用div 展示地图

<div id="map_canvas"  style="width=100%; height: 900px;"></div>
  • 1

text/javascript中创建离线对象

////////////////////////////////CoordMapType对象定义:显示目标位置div/////////////////////////////////////////////////////////////////
function CoordMapType(tileSize) {
  
  //创建对象方法(构造函数)
    this.tileSize = tileSize;
}

CoordMapType.prototype.getTile = function(coord, zoom, ownerDocument) {
    var div = ownerDocument.createElement('DIV');
    var ymax = 1 << zoom;
    var y = ymax - coord.y - 1;
//  div.innerHTML = coord.x + "," + y + "," + zoom;
    div.style.width = this.tileSize.width + 'px';
    div.style.height = this.tileSize.height + 'px';
    div.style.fontSize = '10';
    div.style.borderStyle = 'solid';
    div.style.borderWidth = '0px';
    div.style.borderColor = '#AAAAAA';
    return div;
};

////////////////////////////////LocalMapType对象定义:使用本地地图实体类型/////////////////////////////////////////////////////////////////
function LocalMapType() {}

LocalMapType.prototype.tileSize = new google.maps.Size(256, 256);
LocalMapType.prototype.maxZoom = 18;
LocalMapType.prototype.minZoom = 1;
LocalMapType.prototype.name = "本地";
LocalMapType.prototype.alt = "显示本地地图";
LocalMapType.prototype.getTile = function(coord, zoom, ownerDocument) {
    var img = ownerDocument.createElement("img");
    img.style.width = this.tileSize.width + "px";
    img.style.height = this.tileSize.height + "px";

    var ymax = 1 << zoom;
    var y = ymax - coord.y - 1;

    var strURL = "tilemap\\sjztms\\" + zoom + "\\" + coord.x + "\\" + y + ".png";

    img.src = strURL; 
    return img;
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

载入地图(除了需要使用离线地图对象外,API使用方法和在线地图一样)

var localMapType = new LocalMapType(); 
//创建一个简单的 Google 地图
var myLatlng = new google.maps.LatLng(30.732137,103.968976);//谷歌经纬度,使用WGS84坐标系
var myOptions = {
  
  //myOptions:地图设置
    center: myLatlng,
    zoom: 13 ,
  zoomControl :false,
    streetViewControl: false,
  disableDoubleClickZoom: true,//禁用双击放大
  mapTypeControl: false,//禁用左上角样式 控件
    mapTypeControlOptions: {
    mapTypeIds: ["local", google.maps.MapTypeId.ROADMAP]
    }
}
在map_canvas上创建地图,地图设置myOptions
    var map = new google.maps.Map(document.getElementById("map_canvas"),
            myOptions);

//Map() 的属性:controls控件;mapTypes按字符串 ID 划分的 MapType 实例的注册表,overlayMapTypes 要叠加的额外地图类型
    map.mapTypes.set('local', localMapType);//注册本地地图实体类型
    map.setMapTypeId('local');//使用本地地图实体类型
    map.overlayMapTypes.insertAt(0, new CoordMapType(new google.maps.Size(256, 256)));
allmap=map;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191455.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • -‘0’是什么意思_c语言中a是什么意思

    -‘0’是什么意思_c语言中a是什么意思是c语言中的位运算符:取反.0在内存中的存储方式是所有位为0,0000000000000000那么按位取反后位16个1(如果整形在你的机器上站16位),那么表示的数为-1.转载于:https://www.cnblogs.com/reality-soul/p/6141519.html…

    2022年9月20日
    0
  • redis被击穿_redis的击穿和雪崩

    redis被击穿_redis的击穿和雪崩Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流行的解决方案。本篇文章,并不是要更加完美的解决这三个问题,也不是要颠覆业界流行的解决方案。而是,…

    2022年9月14日
    0
  • java实战——图书管理系统

    因为这个写的比较完整,所以简单说明一下过程中使用的EJB和RMI两个东西。EJB实现原理:就是把原来放到客户端实现的代码放到服务器端,并依靠RMI进行通信。RMI实现原理:就是通过Java对象可序列化机制实现分布计算。好了,没了,就这么简单…想稍微深入了解一下的看一下这个好了,我就不再赘述。https://blog.csdn.net/lovechuanyu/article/…

    2022年4月12日
    37
  • mac版idea插件安装位置

    mac版idea插件安装位置/Users/xxxx/Library/ApplicationSupport/JetBrains/IntelliJIdea2020.3/pluginsxxx替换为自己的用户名

    2022年5月22日
    184
  • mysql导入excel文件_将Excel数据导入MySQL「建议收藏」

    mysql导入excel文件_将Excel数据导入MySQL「建议收藏」去年的投资统计月报数据量庞大,原始表格是xls格式(还是EXECL2003的),单个sheet最大只能放几万行,但数据总量有10万行以上,于是只能存成两个sheet。EXECL2010格式倒是单个sheet可以放得下,可是居然不能将数据完整的从一个sheet复制粘贴到另一个sheet(可能是因为行数太多)。正好想学习一下execl数据导入MySQL数据库的方法,于是开始尝试。一开始使用的是MySQ…

    2022年9月2日
    4
  • 数据结构面试题以及答案整理[通俗易懂]

    数据结构面试题以及答案整理[通俗易懂]一、什么是数据结构?数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。结构包括逻辑结构和物理结构。数据的逻辑结构包括4种(1)集合:数据元素之间除了有相同的数据类型再没有其他的关系(2)线性结构:数据元素之间是一对一的关系——线性表、栈、队列(3)树形结构:数据元素之间是一对多的关系(4)图状结构:数据元素之间是多对多的关系。物理结构包括顺序存储结构和链式存储结构。二、解释一下顺序存储与链式存储顺序存储结构是用一段连续的存储空间来存储数据元

    2022年9月19日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号