What's the spatial reference of your map? If it is web mercator you'll need to convert the lat/lon location from geographic to web mercator. You can do this using the utility method esri.geometry.geographicToWebMercator.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=7,IE=9" /> <!--The viewport meta tag is used to improve the presentation and behavior of the samples on iOS devices--> <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no"/> <title> World Street Map</title> <link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.2/js/dojo/dijit/themes/claro/claro.css"> <link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.2/js/esri/css/esri.css" /> <style> html,body,#map,.map.container{ padding:0; margin:0; height:100%; } </style> <script type="text/javascript">var djConfig = {parseOnLoad: true};</script> <script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=3.2"></script> <script type="text/javascript"> dojo.require("esri.map"); var map; function init() { map = new esri.Map("map"); //Add the world street map layer to the map. View the ArcGIS Online site for services http://arcgisonline/home/search.html?t=content&f=typekeywords:service var basemap = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"); map.addLayer(basemap); dojo.connect(map, 'onLoad', function(theMap) { //get lon/lat from url var url = window.location.href; var urlObject = esri.urlToObject(url); if (urlObject.query) { var location = urlObject.query.location || ''; if(location){ var vals = location.split(","); zoomToLocation(dojo.number.parse(vals[0]), dojo.number.parse(vals[1])); } } //resize the map when the browser resizes dojo.connect(window, 'resize', map,map.resize); }); } function zoomToLocation(lon,lat){ //convert point from geographic to web mercator since the map is in web mercator var point = new esri.geometry.Point(lon,lat, new esri.SpatialReference({ wkid: 4326 })); var wmpoint = esri.geometry.geographicToWebMercator(point); //add the graphic to the map var symbol = new esri.symbol.SimpleMarkerSymbol().setColor(new dojo.Color([0, 255, 0])); symbol.setSize(8); var graphic = new esri.Graphic(wmpoint,symbol); map.graphics.add(graphic); //zoom to the location var factor = 1; var zoomExtent = new esri.geometry.Extent( wmpoint.x - factor, wmpoint.y - factor, wmpoint.x + factor, wmpoint.y + factor, wmpoint.SpatialReference ); map.setExtent(zoomExtent.expand(2)); } dojo.addOnLoad(init); </script> </head> <body class="claro"> <div id="map"> </div> </body> </html>
Los miembros registrados pueden publicar, seguir actualizaciones y más. ¿Nuevo aquí? Regístrate gratis.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.