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>
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.