哎哟!搞了一天终于把地图给弄出来了,总结总结。
1、Google Map出现
这个简单,但首先要申请Google账户,得到个密钥,然后就显示出地图了
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<title>Google Base Map</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
//这里用http://ditu.google.com就是中文地图了
<script src="http://maps.google.com/maps?file=api&v=2&key=密钥"
type="text/javascript"></script>
<script type="text/javascript">
var gmap = null;
function initialize() {
gmap = new GMap2(document.getElementById("gmap"));
var centerat = new GLatLng(45.4447, -122.6335);
gmap.addControl(new GLargeMapControl());
gmap.addControl(new GMapTypeControl());
gmap.setCenter(centerat, 10);
}
</script>
</head>
<body onload="initialize();" onunload="GUnload();">
<div id="gmap" style="width: 500px; height:500px;"></div>
</body>
</html>
加ArcServer的Servers到Google Map中,这就费老大的劲了,要得到一个rest的URL,但怎么得到呢,还涉及到一个Cache Map什么的,折腾了半天才弄清楚,中间找了半天的是,怎么找到Servers Directory,结果还是看牛魔王的ArcGISRIA开发实践解决的。
Servers Directory:Java在浏览器中输入
http://<host>:8399/arcgis/rest/services .Net
http://<host>/arcgis/rest/services
点开你发布的一个服务,这时浏览器中就显示的是Rest地址了。
下面的代码就是增加Server到Google Map中
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<title>Google Maps + ArcGIS</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<script src="http://maps.google.com/maps?file=api&v=2&key=DioG219lPJG3WTn3zmQqebsjVg" type="text/javascript"></script>
<script src="http://serverapi.arcgisonline.com/jsapi/gmaps/?v=1.4" type="text/javascript" ></script>
<script type="text/javascript">
var gmap = null;
var dynMapOv = null;
function initialize() {
//Load Google Maps
gmap = new GMap2(document.getElementById("gmap"));
var centerat = new GLatLng(0, 0);
gmap.addControl(new GLargeMapControl());
gmap.addControl(new GMapTypeControl());
gmap.setCenter(centerat, 1);
gmap.enableScrollWheelZoom();
//create custom dynamic layer
//esri.arcgis.gmaps.DynamicMapServiceLayer(url,esri.arcgis.gmaps.ImageParameters?,opacity?,callback?);
var dynamicMap = new esri.arcgis.gmaps.DynamicMapServiceLayer("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Population_World/MapServer", null, 0.75, dynmapcallback);
}
function dynmapcallback(groundov) {
//Add groundoverlay to map using gmap.addOverlay()
gmap.addOverlay(groundov);
dynMapOv = groundov;
}
</script>
</head>
<body onload="initialize();" onunload="GUnload();">
<table width="100%" height="100%">
<tr>
<td align="center">
<table>
<tr align="left">
<td>
<input type="button" value="Clear Dynamic Map" onclick="gmap.removeOverlay(dynMapOv);" />
</td>
</tr>
<tr align="left" valign="top">
<td>
<div id="gmap" style="width: 500px; height:500px;"></div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html> 那Cahce Map是什么呢,看看帮助又发现tiled map,后来才找到tiled map原来就是瓦片图片,Cache Map就是加载你生成的瓦片图片服务
这里说了怎么发布一个服务,并且做cache,就是做成瓦片图片,
http://webhelp.esri.com/arcgisserver/9.3/dotNet/index.htm#designing_overlay_gm_mve.htm 下面就是发布一个Cache Map的代码
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<title>Add TiledMapService to GMap</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<script src="http://maps.google.com/maps?file=api&v=2&key=DioG219lPJG3WTn3zmQqebsjVg" type="text/javascript"></script>
<script src="http://serverapi.arcgisonline.com/jsapi/gmaps/?v=1.4" type="text/javascript" ></script>
<script type="text/javascript">
var gmap = null;
var mapExtension;
var gOverlays = null;
function initialize() {
//Load Google Maps
gmap = new GMap2(document.getElementById("gmap"));
gmap.addControl(new GLargeMapControl());
gmap.addControl(new GMapTypeControl());
gmap.setCenter(new GLatLng(45.4447, -122.6335), 10);
gmap.enableScrollWheelZoom();
//create mapextension class to be used to add/remove results from the map.
mapExtension = new esri.arcgis.gmaps.MapExtension(gmap);
//create mapOptions to specify opacity, minResolution, maxResolution when adding to the map.
var mapOptions = {opacity: 0.75, minResolution:0, maxResolution: 19};
//create custom tile layer
var tiledmap = new esri.arcgis.gmaps.TiledMapServiceLayer("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Portland/ESRI_LandBase_WebMercator/MapServer", mapOptions, addTiledMap);
}
function addTiledMap(gTileLayer) {
//Add tile layer as a GTileLayerOverlay using mapExtension
gOverlays = mapExtension.addToMap(gTileLayer);
}
</script>
</head>
<body onload="initialize();" onunload="GUnload();">
<div id="gmap" style="width: 500px; height:500px;"></div>
</body>
</html>
好了,这就不Server加到Google Map了。