[OpenLayers-Users] Return Popup Map Click latlon Values to Parent
Page
Brian Krebs
bkrebs at korterra.com
Tue Apr 3 12:18:32 EDT 2007
I'm working with C# and ASP.Net and am wondering if anyone else has had
to figure out the following scenario:
I'm opening up the map in a popup page using the following code from a
linkbutton click.
protected void lbMap_Click(object sender, EventArgs e)
{
lblMapWarning.Visible = false;
if (txtLocateCity.Text.Trim() == "")
{
lblMapWarning.Visible = true;
return;
}
string street = txtHouseNumber.Text + " " + ddStreetPrefix.Text
+ " " + txtStreetName.Text + " " + ddStreetType.Text + " ";
street += ddStreetSuffix.Text;
string city = txtLocateCity.Text;
string stateCode = "OK";
//string zipCode = txtZipCode.Text;
GeoAddress address = geoAPI.GeoEncodeAddress(street.Trim(),
city.Trim(), stateCode);
string sLat = address.Latitude;
string sLon = address.Longitude;
string sZoom = address.Precision;
if (address.Precision == "address")
sZoom = "8";
else
sZoom = "7";
string page = "Mapping/MapServer.aspx?lat=" + sLat + "&lon=" +
sLon + "&zoom=" + sZoom;
string scriptString = buildMapPopupScript(page);
if (!Page.IsStartupScriptRegistered("Startup"))
Page.RegisterStartupScript("Startup", scriptString);
}
static public string buildMapPopupScript(string url)
{
return buildPopupScript(url, 200, 200, 40, 20, 675, 900);
}
static public string buildPopupScript(string url,
int screenX, int screenY, int left, int top, int height, int
width)
{
string s = "";
s += "<script language=javascript>\n";
s += "window.open('" + url + "',";
s += "'_blank',";
s += "'menubar=no,";
s += "resizable=yes,";
s += "location=no,";
s += "directories=no,";
s += "status=yes,";
s += "copyhistory=no,";
s += "screenX=" + Convert.ToString(screenX) + ",";
s += "screenY=" + Convert.ToString(screenY) + ",";
s += "left=" + Convert.ToString(left) + ",";
s += "top=" + Convert.ToString(top) + ",";
s += "scrollbars=yes,";
s += "toolbar=yes,";
s += "height=" + Convert.ToString(height) + ",";
s += "width=" + Convert.ToString(width) + "');\n";
s += "</script>";
return s;
}
I'm registering a click event in the MappingFuncs.js with this code to
try to return the lat/lon values back to the parent page:
openLayersMap.events.register("click", openLayersMap, function(e)
{
var lonlat = openLayersMap.getLonLatFromViewPortPx(e.xy);
var markersLayer = new OpenLayers.Layer.Markers("Locate");
var marker = new OpenLayers.Marker(new
OpenLayers.LonLat(lonlat.lon, lonlat.lat), new
OpenLayers.Icon("http://openlayers.org/api/img/marker.png", new
OpenLayers.Size(15,25)));
alert("You clicked " + lonlat.lon + ", " + lonlat.lat);
markersLayer.addMarker(marker);
openLayersMap.addLayer(markersLayer);
// var txtLat =
window.opener.window.document.getElementById("txtLatitude");
// txtLat.innerHTML = lonlat.lat;
// var txtLon =
window.opener.window.document.getElementById("txtLongitude");
// txtLon.innerHTML = lonlat.lon;
});
I found the commented code on www.asp.net <http://www.asp.net/> to use
window.opener, but my vars txtLat and txtLon are always coming back as
null. Does anyone know a good way to return the lonlat values back to
my textboxes in the parent page?
Thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20070403/03e34188/attachment.html
More information about the Users
mailing list