2012-03-12 18 views
8

estoy teniendo un mal rato tratando de añadir un marcador simple se puede hacer clic a un ArcGIS, el mapa puramente uso de JavaScript. Todos los ArcGIS Samples parecen obtener su marcador e información emergente relacionada del servidor. ¿Cómo puedo lograr el mismo resultado con ArcGIS que este código de ejemplo de Google Maps a continuación?ArcGIS ejemplo simple representación dinámicamente un marcador

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<div id="map" style="width: 500px; height: 500px;"></div> 
<script type="text/javascript"> 
    window.onload = function() { 
     var myOptions = { 
      zoom: 2, 
      center: new google.maps.LatLng(40, -75), 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 

     var map = new google.maps.Map(document.getElementById("map"), myOptions); 

     var icon = new google.maps.MarkerImage("http://cinnamonthoughts.org/wp-content/uploads/2010/01/Custom-Marker-Avatar.png"); 

     var markerOptions = { 
      icon: icon, 
      map: map, 
      position: new google.maps.LatLng(37.7699298, -122.4469157), 
     }; 

     var marker = new google.maps.Marker(markerOptions); 

     google.maps.event.addListener(marker, 'click', function() { 
      var infoWindow = new google.maps.InfoWindow(); 
      infoWindow.setContent("hello world"); 
      infoWindow.open(map, marker); 
     }); 
    }; 
</script> 
+0

parece funcionar bien para mí: http://jsfiddle.net/j08691/DLAsJ/. ¿Recibo la recompensa;) – j08691

+0

@ j08691 pones mi código en jsfiddle ... no usaste ArcGIS, como mi pregunta. – Langdon

Respuesta

10

Prueba esto:

  1. Crear una Point para usted longitud y latitud
  2. convertir el punto de referencia espacial Web Mercator, si es necesario
  3. Crear una PictureMarkerSymbol para usted marcador de imagen personalizada
  4. Crea un Graphic usando el punto y el símbolo
  5. Crear una GraphicsLayer
  6. agregar el gráfico a la capa gráfica
  7. Añadir la capa gráfica a su mapa
  8. Añadir una costumbre onClick detector de eventos a su capa de

Algunos código equivalente:

var point = new esri.geometry.Point(longitude, latitude); 
point = esri.geometry.geographicToWebMercator(point); 
var symbol = new esri.symbol.PictureMarkerSymbol("marker.png", 32, 32); 
var graphic = new esri.Graphic(point, symbol); 
var layer = new esri.layers.GraphicsLayer(); 
layer.add(graphic); 
map.addLayer(layer); 
dojo.connect(layer, "onClick", onClick); 

En el detector de eventos puede abrir un infoWindow personalizado o lo que quiera:

function onClick(event) { 
    map.infoWindow(...) 
... 

Cambia "marker.png" y 32x32 para usar tu imagen de marcador personalizada y las dimensiones.

+0

¡Gracias! Tener algunos problemas con esri.geometry.Point. No parece tomar mi latitud/longitud y siempre pondrá el marcador en lat: 0 y long: 0. Ejemplo aquí: http://jsfiddle.net/v8EEy/ – Langdon

+0

@Langdon Su mapa está utilizando la referencia espacial de Web Mercator. Use 'esri.geometry.geographicToWebMercator' para convertir su (longitud, latitud). He actualizado la respuesta. –

+0

Usted señor, ha sido bastante útil, gracias. – Langdon

-3

intentar colocar el icono de imagen en cualquier lugar de la pantalla Y X mediante el posicionamiento CSS entonces sólo hay que poner el controlador onClick dentro del DIV real o etiqueta IMG. Intenta jugar con la combinación relativa vs. absoluta para hacerlo bien.

div#header { 
position: relative; 
} 

img#headimg { 
position: absolute; 
left: whatever you like 
top: whatever you like 
} 
+0

No estoy seguro de haber entendido mi pregunta. Tengo una latitud/longitud, y debo colocar un ícono en un mapa de ArcGIS dinámicamente con JavaScript. – Langdon