将其他地图(google,bing)嵌入openstreetmap

时间:2015-01-08 06:00:06

标签: google-maps openstreetmap bing

我目前正在使用谷歌地图api v3,但谷歌阻止了我的网站。所以我暂时使用我的子域,它工作正常。

现在为了防止再次发生,我将默认地图更改为openstreetmap。现在我的问题是我如何将其他地图如google,bing等嵌入到OSM中。

我会尝试使用此代码,但发生的情况恰恰相反,OSM已嵌入谷歌地图

map.mapTypes.set("OSM", new google.maps.ImageMapType({ getTileUrl: function(coord, zoom) { return "http://tile.openstreetmap.org/" + zoom + "/" + coord.x + "/" + coord.y + ".png"; }, tileSize: new google.maps.Size(256, 256), name: "OpenStreetMap", maxZoom: 18 }));

1 个答案:

答案 0 :(得分:-1)

我找到了这个link,并认为这是我寻找的那个。我可以切换到OSM,Google和Bing Map。

<script type='text/javascript' src='http://www.openlayers.org/api/OpenLayers.js'></script>
<script type='text/javascript' src='https://maps.googleapis.com/maps/api/js?sensor=FALSE&libraries=drawing'></script>
<script type='text/javascript' src='http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0'></script>


var map = new OpenLayers.Map('map', {
    projection: new OpenLayers.Projection('EPSG:900913')
});
var osm = new OpenLayers.Layer.OSM();
var gmap = new OpenLayers.Layer.Google('Google street maps');
var bing = new OpenLayers.Layer.Bing({
    key: 'register your api key at bingmapsportal.com',
    type: 'Road',
    metadataParams: {mapVersion: 'v1'}
});
map.addLayers([osm, gmap, bing]);
map.setCenter(
    new OpenLayers.LonLat(2.2, 54.0).transform(
        new OpenLayers.Projection('EPSG:4326'), map.getProjectionObject()
    ), 5 );
map.addControl(new OpenLayers.Control.LayerSwitcher());

这可以切换到不同的webmap。如果你比这更好,请告诉我。