I have kml in local not in server and i wish to display kml into map how i can do this.
var polygons = dojo.filter(lyrs, function(lyr) { if ( lyr.geometryType == "esriGeometryPolygon" ) { return lyr; } })[0];
dojo.byId("info").innerHTML = ""; dojo.forEach(polygons.graphics, function(g) { // hide the graphic by default g.hide(); var node = dojo.create('div', { id: g.attributes.id, innerHTML: g.attributes.name }, dojo.byId("info")); // set up an event handlers to show the feature dojo.connect(node, "onmouseover", function() { g.show(); }); dojo.connect(node, "onmouseout", function() { g.hide(); }); });
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=7,IE=9" /> <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no"/> <title></title> <link rel="stylesheet" href="http://serverapi.arcgisonline.com/jsapi/arcgis/2.5/js/dojo/dijit/themes/tundra/tundra.css"> <link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/2.5/js/esri/dijit/css/Popup.css"/> <style> html, body { height: 100%; width: 100%; margin: 0; padding: 0; } #map { margin: 0; padding: 0; } #meta { position: absolute; left: 20px; bottom: 20px; width: 300px; height: 100px; z-index: 40; background: #fff; color: #777; padding: 5px; border: 5px solid #777; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; font-family: arial; font-size: 0.9em; } #meta h3 { color: #000; font-size: 1.1em; padding: 0px; margin: 0px; display: inline-block; } #loading { float: right; } </style> <script>var dojoConfig = { parseOnLoad: true };</script> <script src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=2.5"></script> <script> dojo.require("dijit.layout.BorderContainer"); dojo.require("dijit.layout.ContentPane"); dojo.require("esri.map"); dojo.require("esri.layers.KMLLayer"); var map; function init() { var initExtent = new esri.geometry.Extent({"xmin":-13787751,"ymin":4476990,"xmax":-10404954,"ymax":6049759,"spatialReference":{"wkid":102100}}); map = new esri.Map("map",{ extent: initExtent }); var basemap = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer"); map.addLayer(basemap); var kmlUrl = 'http://dl.dropbox.com/u/2654618/kml/Wyoming.kml'; var kml = new esri.layers.KMLLayer(kmlUrl, { visible: false }); map.addLayer(kml); dojo.connect(kml, 'onLoad', configureMouseOver); dojo.connect(map, 'onLoad', function() { //resize the map when the browser resizes dojo.connect(dijit.byId('map'), 'resize', map,map.resize); }); } function configureMouseOver(kml) { // get layers var lyrs = kml.getLayers(); var polygons = dojo.filter(lyrs, function(lyr) { if ( lyr.geometryType == "esriGeometryPolygon" ) { return lyr; } })[0]; console.log('polygons: ', polygons); dojo.byId("info").innerHTML = ""; dojo.forEach(polygons.graphics, function(g) { // hide the graphic by default g.hide(); var node = dojo.create('div', { id: g.attributes.id, innerHTML: g.attributes.name }, dojo.byId("info")); // set up an event handlers to show the feature dojo.connect(node, "onmouseover", function() { g.show(); }); dojo.connect(node, "onmouseout", function() { g.hide(); }); }); // turn the layer on but no graphics will // show because they were previously hidden kml.show(); } dojo.ready(init); </script> </head> <body class="tundra"> <div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="design:'headline',gutters:false" style="width: 100%; height: 100%; margin: 0;"> <div id="map" data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region:'center'"> <div id="meta"> <h3>Display KML Using a <a href="http://help.arcgis.com/en/webapi/javascript/arcgis/help/jsapi/kmllayer.htm">KMLLayer</a></h3> <div id="info">The map displays a simple KML file that was created using Google Earth and is hosted on an Esri server. Symbology and attributes are honored.</div> <div> </div> </div> </body> </html>
サインインしたメンバーは投稿、更新のフォローなどができます。初めてですか?無料アカウントを登録してください。
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.