1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > openlayers加载谷歌地图(demo)

openlayers加载谷歌地图(demo)

时间:2024-05-02 18:50:28

相关推荐

openlayers加载谷歌地图(demo)

最近发现可以直接访问谷歌地图了(不用梯子,不用翻墙,直接访问谷歌地图,关键是使用了gac-),用openlayers随手写了一个,方便自己使用,感兴趣的可以访问我写的例子,需要注意的是,打开地图后,没有任何图层,需要在下面选择图层。

例子:谷歌地图demo

地图和图层

//先定义需要的变量//图层的参数var layerConfig = {};//openlayers图层var layers = {};//使用4326的坐标系var map = new ol.Map({layers: [],target: 'map',view: new ol.View({center: [109, 32],zoom: 5,projection: "EPSG:4326"})});

加载图层

function load() {//lyrs和图层名称的对应关系layerConfig["m"] = "路线图";layerConfig["t"] = "地形图";layerConfig["p"] = "带标签的地形图";layerConfig["s"] = "卫星图";layerConfig["y"] = "带标签的卫星图";layerConfig["h"] = "标签层(路名、地名等)";//osm地图layerConfig["osm"] = "osm";for (var key in layerConfig) {var name = layerConfig[key];if (name == "osm") {var osml = new ol.layer.Tile({source: new ol.source.OSM()});osml.name = "osm";layers[key] = osml;} else {layers[key] = getGLayer(key, layerConfig[key]);}//添加到页面var input = document.createElement("input");input.setAttribute("type", "checkbox");input.setAttribute("id", key);input.setAttribute("name", name);input.setAttribute("value", name);input.setAttribute("onclick", "setLayerVisible(this)");document.getElementById("layers").appendChild(input);document.getElementById("layers").appendChild(document.createTextNode(name));}}

图层的操作

这里使用gac-加载谷歌的地图,lyrs参数对应的图层名称在上面的代码里面

// 设置图层的显示function setLayerVisible(obj) {var layerName = obj.value;var layer = getLayerByName(layerName);if (layer != null) {layer.setVisible(obj.checked);} else {map.addLayer(layers[obj.id]);}}//根据图层名称获取图层function getLayerByName(name) {var layers = map.getLayers();var l = layers.getLength();for (var i = 0; i < l; i++) {if (layers.item(i).name == name) {return layers.item(i);}}return null;}//构建谷歌地图的图层function getGLayer(l, name) {var gl = new ol.layer.Tile({source: new ol.source.XYZ({url: 'https://gac-/maps/vt?lyrs=' + l + ',m&gl=&x={x}&y={y}&z={z}'})});gl.name = name;return gl;}

希望谷歌地图的这个域名能多用几年

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。