Tengo un pedazo de código que lleva una capa de mapa y coloca una capa de vector en la parte superior de eso. En la actualidad, sólo estoy tratando de colocar un par de puntos en la parte superior del mapa, sin éxito.
Me las arreglé para poner 1 punto, pero sólo iba a permanecer en el medio del mapa.
Me tomó todo el código html y simplificado. Aquí está el código para el conjunto de la página, es independiente, así que usted puede simplemente copiar y pegar en una nueva página html y ver el problema.
<html>
<body onload="initMapp()">
<div id="mapp" class="smallmap"></div>
</body>
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
<script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script>
<script>
// $(document).ready(function() {
// initMapp();
// })
var lon = 0;
var lat = 0;
var zoom = 3 ;
var map; //complex object of type OpenLayers.Map
function initMapp() {
map = new OpenLayers.Map("mapp", {
units : 'm'
});
layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik");
layerMapnik.setOpacity(1);
map.addLayer(layerMapnik);
addPointToMap(map);
var switcherControl = new OpenLayers.Control.LayerSwitcher();
map.addControl(switcherControl);
switcherControl.maximizeControl();
if (!map.getCenter()) {
var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map
.getProjectionObject());
map.setCenter(lonLat, zoom);
}
}
function addPointToMap(pMap){
var coordinates = new Array();
var pointStyle = {externalGraphic: 'http://www.humanized.com/weblog/images/persimmon.gif', graphicHeight: 20, graphicWidth: 20}
// Make Point
coordinates.push(new OpenLayers.Geometry.Point(33, 33));
var pointsGeometry = new OpenLayers.Geometry.MultiPoint(coordinates);
var pointFeature = new OpenLayers.Feature.Vector(pointsGeometry, null, pointStyle);
// Layer
var pointsLayer = new OpenLayers.Layer.Vector("Points Layer");
pointsLayer.addFeatures([pointFeature]);
pMap.addLayer(pointsLayer);
}
</script>
<style>
.smallmap {
height: 80%;
width: 80%;
}
</style>
</html>
Para reiterar, ¿cómo hacer el punto en algún lugar en el mapa? (He lon/lat)
Gracias!
Actualización
Sólo para que sea más fácil para los lectores en el futuro. La respuesta que está marcado como la solución a continuación sólo alude a la solución completa. La "solución total" es para modificar el punto de código de creación como tal:
// Make Point
coordinates.push(new OpenLayers.Geometry.Point(33, 33).transform(new OpenLayers.Projection("EPSG:4326"), map
.getProjectionObject()));