zoukankan      html  css  js  c++  java
  • 如何在Google Maps API中使用谷歌地图的数据

    如何在Google Maps API中使用谷歌地图的数据?

    这几乎是我听到的最多的关于Google Maps API的问题了。大家都知道Google Maps没有中国的详细地图,在中国,我们只有一个独特的谷歌地图网站,提供了中国的详细地图。这种现状的原因,Google和谷歌都没有正式解释过,但是我们自己多半也能猜到大概,这我们就不多说了。

    问 题是,我们有了中国的详细地图,我们怎么在Google Maps API中使用呢?之前我总是这么回答大家,谷歌地图提供了兼容Google Maps API语法的API,唯一的问题就是不太稳定。这个方法其实并不好,因为你需要在代码中去考虑怎么在两个不同的对象之间切换,代码逻辑会变得非常的复杂。

    但是因为谷歌地图现在的缩放级别和切图模式已经完全等同于Google Maps了。所以其实,我们有一个非常好的办法,那就是直接利用谷歌地图的地图块构建一个Google Maps API的自定义地图类型。

    下面是来自Anthony Wong的在Google Maps API中使用谷歌地图的例子(地图类型出现了四个选择,第四个DITU就是选择谷歌地图的按钮):



    核心代码是:

    var copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(-90, -180),
    new GLatLng(90, 180)),
    0, "Map data: В©2007 Mapabc.com");
    var copyrightCollection = new GCopyrightCollection("В©2007 Google - ");
    copyrightCollection.addCopyright(copyright);
    var dituTileLayer = new GTileLayer(copyrightCollection, 1, 17);
    dituTileLayer.getTileUrl = function(tile, zoom) {
    return "http://mapgoogle.mapabc.com/googlechina/maptile?v=w2.52&x=" +
    tile.x + "&y=" + tile.y + "&zoom=" + (17-zoom);
    };

    // Using a map type:
    var dituMapType = new GMapType([dituTileLayer],
    new GMercatorProjection(23), "Ditu", { shortName: "ditu", alt: "Show maps from Google China" });
    map.addMapType(dituMapType);
  • 相关阅读:
    Js如何动态声明变量名
    vue 生命周期
    开心就要说出来
    为你自己而努力
    vue调试工具
    笨笨对面向对象的理解
    一些小知识点-慢慢更新
    Ajax同时上传表单序列化参数+自定义参数
    关闭layer当前弹窗
    JSTL 递增序号
  • 原文地址:https://www.cnblogs.com/analyzer/p/1295592.html
Copyright © 2011-2022 走看看