中易网

GoogleMap v3 API详解,该怎么解决

答案:1  悬赏:20  
解决时间 2021-01-17 06:16
GoogleMap v3 API详解,该怎么解决
最佳答案
我曾经用这个做过google离线地图的展示和渲染,下面是相关代码:

加载本地地图的函数:
function LocalMapType() {}   
    LocalMapType.prototype.tileSize = new google.maps.Size(256, 256);  
    LocalMapType.prototype.maxZoom = 13;  // 地图显示最大级别  
    LocalMapType.prototype.minZoom = 9;   // 地图显示最小级别  
    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 strURL = "gmap/tiles/" + zoom + "/" + coord.x + "/" + coord.y + ".png";   
    img.src = strURL;  
    return img;  
    };  
      
    var localMapType = new LocalMapType();
初始化地图函数:


function initialize() {  
    // 以该经纬度为中心居中显示,注意google 一般先写纬度,在写经度  
    var myLatlng = new google.maps.LatLng(30.51667,114.31667);   
    var myOptions = {  
      center: myLatlng,  
      zoom: 10,        // 初始化地图默认级别  
      streetViewControl: false,     // 默认不显示全景图  
      mapTypeControlOptions: {  
        mapTypeIds: ["local", google.maps.MapTypeId.ROADMAP] // 地图类型为普通街道地图  
        }  
    };  
      
    var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);  
    map.mapTypes.set('local', localMapType);  
    map.setMapTypeId('local');  
    // 设置地图瓦片大小为256*256  
    map.overlayMapTypes.insertAt(0, new CoordMapType(new google.maps.Size(256, 256)));
html代码:


  
      
在离线的情况下渲染离线地图:
1.加载图片:


var image = 'icon/0.png'; // 存放图片的路径  
    var myLatLng = new google.maps.LatLng(30.51667,114.31667); // 图片显示的地方  
    var beachMarker = new google.maps.Marker({  
    position: myLatLng,  
    map: map,  
    icon: image  
});

2.画折线:


var flightPlanCoordinates = [  
    new google.maps.LatLng(30.51667,114.31667),  
    new google.maps.LatLng(30.50667,114.32667),  
    new google.maps.LatLng(30.40667,114.30667)  
    ];  
    var flightPath = new google.maps.Polyline({  
       path: flightPlanCoordinates,  
       strokeColor: "#FF0000",  
       strokeOpacity: 1.0,  
       strokeWeight: 2  
    });  
       
    flightPath.setMap(map); // 如果想还原去掉折线用:flightMap.setMap(null)

3.画圆:


var citymap = {};    
   citymap['chicago'] = {    
   center: new google.maps.LatLng(31.18439, 121.49454),    
   population: 284259   
   };   
   citymap['newyork'] = {    
   center: new google.maps.LatLng(31.38439, 121.52454),    
   population: 814319   
   };  
   var cityCircle;  
  
   for (var city in citymap) {    
   var populationOptions = {    
     strokeColor: "#FF0000",    
     strokeOpacity: 0.8,    
     strokeWeight: 1,    
     fillColor: "#FF0000",    
     fillOpacity: 0.35,    
     map: map,    
     center: citymap[city].center,    
     radius: citymap[city].population / 1000    
   };    
   cityCircle = new google.maps.Circle(populationOptions);    
   }


4.画多边形:


// 如果是多边形,最后一个点不需要写成第一个点就可以自动连起来  
     var triangleCoords = [    
     new google.maps.LatLng(30.51667,114.31667),  
         new google.maps.LatLng(30.50667,114.42667),  
         new google.maps.LatLng(30.40667,114.30667)  
    ];    
        
    bermudaTriangle = new google.maps.Polygon({    
        paths: triangleCoords,    
        strokeColor: "#FF0000",    
        strokeOpacity: 0.8,    
        strokeWeight: 2,    
        fillColor: "#FF0000",    
        fillOpacity: 0.35    
    });    
        
    bermudaTriangle.setMap(map);希望对你有用。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
纳兰容若虞美人里"十年踪迹十年心"是什么意思
Kong audio怎么导入kontakt
刚重温完了虹猫蓝兔七侠传,真的超级好看,超
惠州安装什么宽带好
从次渠怎样到北京南站
老王车行怎么去啊,我要去那办事
绑在腿上那种沙袋叫什么?
今晚3d又买什么号码?
依法治教主要内容有哪些
百胜二手商行地址在什么地方,我要处理点事
#include<stdlib.h> char *fun(char (*a
蜗蜗统一零售价
正史三国中谁的性格最好
我已经被航天五院录取,511所,属于航天人才
youmgmanbebrave中文是什么意思
推荐资讯
佛教怎样看待下毒害人
一台三相异步电动机,其额定数据如下:PN=45k
Kmplayer无法打开本地网页里面的超链接视频
有多少爱情打着朋友的
18.45-(3.8x2.7十5.4)怎样简便计算?
我女朋友我俩年底想定婚她没有勇气和他妈说怎
小脚丫幼儿园(无锡江阴)地址在什么地方,我要
带爬字的歌词有哪些
新金书群芳谱8.32 怎么加点 攻击,防御,轻功
现役编制包含士兵吗
发海廊烫染中心地址好找么,我有些事要过去
表示friendly和kind的英语单词 11个字母 第六
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?