[OpenLayers-Users] Add Point to Map
Drew Toto
dtoto at pdsg.com
Fri Nov 13 14:00:41 EST 2009
A while back I did this for a prototype using something similar to this
code, hope it helps.
map.events.register("click", map, function(e) {
var position = this.events.getMousePosition(e);
var point = map.getLonLatFromPixel(position);
//create point and add to layer
});
Also, as somebody else pointed out, definitely read up on
spherical-mercator on the OpenLayers site if you haven't already.
http://docs.openlayers.org/library/spherical_mercator.html
-----Original Message-----
From: users-bounces at openlayers.org [mailto:users-bounces at openlayers.org]
On Behalf Of Jones, Christopher
Sent: Friday, November 13, 2009 5:05 AM
To: users at openlayers.org
Subject: [OpenLayers-Users] Add Point to Map
Hi all,
Im fairly new to OpenLayers and javascript for that matter as well.
Having looked extensively through all the various examples and forums
and blogs, and one or 2 tutorials, I am still struggling to add a point
to a map (or a vector layer)! All I want, is to click on a map and adda
a point. Heres my code, please feel free to point all the errors you
want!
Thanks in advance!
Chris
(Sorry if this has been sent twice)
var myStyles = new OpenLayers.StyleMap({
"default": new OpenLayers.Style({
fillColor: "#ffcc66",
strokeColor: "#ff9933",
strokeWidth: 10
})
});
function initialiseMap(){
map = new OpenLayers.Map('map');
map.addControl(new OpenLayers.Control.LayerSwitcher());
var gphy = new OpenLayers.Layer.Google(
"Google Physical",
{ type: G_PHYSICAL_MAP }
);
var gmap = new OpenLayers.Layer.Google(
"Google Streets",
{numZoomLevels: 20 }
);
var ghyb = new OpenLayers.Layer.Google(
"Google Hybrid",
{ type: G_HYBRID_MAP, numZoomLevels: 20 }
);
var gsat = new OpenLayers.Layer.Google(
"Google Satellite",
{ type: G_SATELLITE_MAP, numZoomLevels: 20 }
);
map.addLayers([gphy, gmap, ghyb, gsat]);
map.setCenter(new OpenLayers.LonLat(-74.0094, 40.7048),
5);
map.addControl(new OpenLayers.Control.PanZoomBar());
map.addControl(new OpenLayers.Control.MousePosition());
}
function singleClickButton() {
document.getElementById("map").childNodes[0].style.cursor =
"crosshair";
map.events.register('click', '', singleClickEvent);
}
function singleClickEvent (e) {
var lonlat = map.getLonLatFromViewPortPx(e.xy);
var lon = lonlat.lon
var lat = lonlat.lat
var pointLayer = new OpenLayers.Layer.Vector('Points', { styleMap:
myStyles });
map.addLayers([pointLayer]);
var bPoint = new OpenLayers.Geometry.Point(lon , lat)
newpoint = new OpenLayers.Feature.Vector(bPoint);
pointLayer.addFeatures(newpoint);
}
IMPORTANT - This email and the information that it contains may be
confidential, legally privileged and protected by law. Access by the
intended recipient only is authorised. Any liability (in negligence or
otherwise) arising from any third party acting, or refraining from
acting, on any information contained in this email is hereby excluded.
If you are not the intended recipient, please notify
AmlinCommunications at amlin.co.uk immediately then delete it and do not
disclose the contents to any other person, use it for any purpose or
store or copy the information in any medium.
Copyright in this email and attachments created by us belong to Amlin
plc and/or one or more of its subsidiaries (Amlin Group). The author
also asserts the right to be identified as such and object to any
misuse.
The Amlin Group prohibits and takes steps to prevent its email systems
from being used to view, store or transmit offensive, obscene or
discriminatory material. If this message contains inappropriate material
please report it immediately to AmlinCommunications at amlin.co.uk.
The Amlin Group records, monitors and may inspect messages that use its
telecoms systems in order to protect its information, interests and
reputation. Any message sent by you to or within the Amlin Group may
therefore be viewed and may be acted upon.
Of the companies within the Amlin Group, Amlin Underwriting Limited,
Amlin Underwriting Services Limited, Amlin UK Limited and Amlin Plus
Limited are authorised and regulated by the Financial Services
Authority.
This email has been sent by a member of staff of one or more of the
following Amlin Group companies:
Amlin plc. Registered in England and Wales no. 2854310 Amlin
Underwriting Limited. Registered in England and Wales no. 2323018 Amlin
Underwriting Services Limited. Registered in England and Wales no.
422615 Amlin UK Limited. Registered in England and Wales no. 2739220
Amlin Plus Limited. Registered in England and Wales no. 4729659
Registered Offices: St Helen's, 1 Undershaft, London EC3A 8ND, United
Kingdom
Amlin plc switchboard: 020 7746 1000
Web Site: http://www.amlin.com
More information about the Users
mailing list