<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7654.12">
<TITLE>RE: [fusion-dev] Creating Vector Points on the Map from Task Pane</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>vectorLayer is an OL layer. It is created on the line:<BR>
<BR>
vectorLayer = new OpenLayers.Layer.Vector('Geocoded Points'...<BR>
<BR>
With this code I can see using firebug that the vector layer is getting created but the point data seems to somehow be invalid.<BR>
<BR>
- Tim<BR>
<BR>
----<BR>
Timothy J Nolte - tnolte@ilpcs.com<BR>
Network Planning Engineer<BR>
<BR>
iPCS Wireless, Inc.<BR>
4717 Broadmoor Ave, Suite G<BR>
Kentwood, MI 49512<BR>
<BR>
Office: 616-656-5163<BR>
PCS: 616-706-2438<BR>
Fax: 616-554-6484<BR>
Web: www.ipcswirelessinc.com<BR>
<BR>
<BR>
<BR>
-----Original Message-----<BR>
From: pdescham49@gmail.com on behalf of Paul Deschamps<BR>
Sent: Mon 11/23/2009 11:11 AM<BR>
To: Nolte, Tim<BR>
Cc: fusion-dev@lists.osgeo.org<BR>
Subject: Re: [fusion-dev] Creating Vector Points on the Map from Task Pane<BR>
<BR>
Hi,<BR>
<BR>
1 question : is&nbsp; &quot;vectorLayer&quot; a OL vector layer? i don't see the code where<BR>
you create that layer.<BR>
<BR>
Cheers<BR>
<BR>
Paul D.<BR>
<BR>
<BR>
On Sat, Nov 21, 2009 at 12:30 AM, Nolte, Tim<BR>
&lt;Tim.Nolte@ipcswirelessinc.com&gt;wrote:<BR>
<BR>
&gt; OK Guys,<BR>
&gt;<BR>
&gt; So I've been banging my head against the wall trying to figure out how<BR>
&gt; to get a geocoded point to display as a vector star on the map. I've got<BR>
&gt; things working to the point of getting my lat/long and zooming the map<BR>
&gt; to the extents that the point falls in. The part that I just can't seem<BR>
&gt; to get working, no matter what combination I try, is taking my lat/long<BR>
&gt; and sticking a point(star) on the map. I'm including my code so you can<BR>
&gt; see where I'm at. You'll notice that in some cases I've got some<BR>
&gt; hard-coded items, this is just due to my custom widget not really being<BR>
&gt; general purpose anyways. Any tips here would be hugely appreciated.<BR>
&gt; Thanks!<BR>
&gt;<BR>
&gt; function GetParent() {<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (parent.Fusion) {<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return parent;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (parent.parent.Fusion) {<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return parent.parent;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<BR>
&gt; }<BR>
&gt;<BR>
&gt; function getMapAddress() {<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return<BR>
&gt; GetParent().Fusion.applicationDefinition.widgetSets[0].widgetTagsByName.<BR>
&gt; menuMapAddress;<BR>
&gt; }<BR>
&gt;<BR>
&gt; function createPoint(nLat, nLon, sLabel) {<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var OpenLayers = GetParent().OpenLayers;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var mapWidget = getMapAddress().getMapWidget();<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var json = getMapAddress().extension;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // calculate &amp; zoom to new extents<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var ur = new Object;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var ll = new Object;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ur.x = nLon;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ll.x = nLon;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ur.y = nLat;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ll.y = nLat;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // create one default layer, unless other widgets have created<BR>
&gt; it<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var vectorLayer = mapWidget.oMapOL.getLayersByName('Geocoded<BR>
&gt; Points');<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var mapServerLayer =<BR>
&gt; mapWidget.oMapOL.getLayersByName('ipcs_cell_sites');<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (vectorLayer) { mapWidget.oMapOL.removeLayer(vectorLayer,<BR>
&gt; false); }<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vectorLayer = new OpenLayers.Layer.Vector('Geocoded Points', {<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; styleMap: new OpenLayers.StyleMap({'default':{<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strokeColor: &quot;#00FF00&quot;,<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strokeOpacity: 1,<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strokeWidth: 3,<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fillColor: &quot;#000000&quot;,<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fillOpacity: 0.5,<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pointRadius: 6,<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pointerEvents: &quot;visiblePainted&quot;,<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label : &quot;${label}&quot;,<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fontColor: &quot;#000000&quot;,<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fontSize: &quot;7px&quot;,<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fontFamily: &quot;Arial&quot;,<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fontWeight: &quot;bold&quot;,<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; labelAlign: &quot;rt&quot;,<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; labelXOffset: &quot;${xOffset}&quot;,<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; labelYOffset: &quot;${yOffset}&quot;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }})<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // create a point feature<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var point = new OpenLayers.Geometry.Point(nLon, nLat);<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var pointFeature = new OpenLayers.Feature.Vector(point);<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pointFeature.attributes = {<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label: sLabel,<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // positive value moves the label to the right<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xOffset: 50,<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // negative value moves the label down<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yOffset: 0<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mapWidget.oMapOL.addLayer(vectorLayer);<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vectorLayer.maxScale = mapServerLayer.maxScale;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vectorLayer.numZoomLevels = mapServerLayer.numZoomLevels;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vectorLayer.addFeatures([pointFeature]);<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var zoomFactor = json.Factor ? json.Factor[0] : 2;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var margin = .0125;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var zoom_size = zoomFactor * margin / 2;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //var zoom_size = zoomFactor * Math.max( Math.abs(ur.x - ll.x),<BR>
&gt; Math.abs(ur.y - ll.y)) / 2;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var cX = (ur.x + ll.x)/2;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var cY = (ur.y + ll.y)/2;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ll.x = cX - zoom_size;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ur.x = cX + zoom_size;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ll.y = cY - zoom_size;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ur.y = cY + zoom_size;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mapWidget.oMapOL.zoomToExtent(new<BR>
&gt; OpenLayers.Bounds(ll.x,ll.y,ur.x,ur.y));<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mapWidget._oCurrentExtents = mapWidget.oMapOL.getExtent();<BR>
&gt; }<BR>
&gt;<BR>
&gt; ----<BR>
&gt; Timothy J Nolte - tnolte@ilpcs.com<BR>
&gt; Network Planning Engineer<BR>
&gt;<BR>
&gt; iPCS Wireless, Inc.<BR>
&gt; 4717 Broadmoor Ave, Suite G<BR>
&gt; Kentwood, MI 49512<BR>
&gt;<BR>
&gt; Office: 616-656-5163<BR>
&gt; PCS:&nbsp;&nbsp;&nbsp; 616-706-2438<BR>
&gt; Fax:&nbsp;&nbsp;&nbsp; 616-554-6484<BR>
&gt; Web: www.ipcswirelessinc.com<BR>
&gt;<BR>
&gt; _______________________________________________<BR>
&gt; fusion-dev mailing list<BR>
&gt; fusion-dev@lists.osgeo.org<BR>
&gt; <A HREF="http://lists.osgeo.org/mailman/listinfo/fusion-dev">http://lists.osgeo.org/mailman/listinfo/fusion-dev</A><BR>
&gt;<BR>
<BR>
<BR>
<BR>
--<BR>
&nbsp;&nbsp; Paul Deschamps<BR>
&nbsp;&nbsp; Applications Specialist<BR>
&nbsp;&nbsp; DM Solutions Group Inc.<BR>
<BR>
&nbsp;&nbsp; Office: (613) 565-5056 x28<BR>
&nbsp;&nbsp; pdeschamps@dmsolutions.ca<BR>
&nbsp;&nbsp; <A HREF="http://www.dmsolutions.ca">http://www.dmsolutions.ca</A><BR>
&nbsp;&nbsp; <A HREF="http://research.dmsolutions.ca">http://research.dmsolutions.ca</A><BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>