<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hello Nick,<br>
<br>
Here's some code - it's not complete - because it mostly lacks variable
definitions which should be globals. However, they should be easy to
add:<br>
<br>
<tt>//layer definition<br>
markers = new OpenLayers.Layer.Vector("Alarms", {<br>
                        projection: map.displayProjection, strategies:
[new OpenLayers.Strategy.BBOX()],<br>
                        protocol: new OpenLayers.Protocol.HTTP({ url:
"kml_alarms.pl", format: new OpenLayers.Format.KML({ extractStyles:
true, extractAttributes: true })})}); <br>
        map.addLayer(markers);<br>
<br>
       //if you want to select the markers later, you will need to add
the necessary functions.<br>
        select = new OpenLayers.Control.SelectFeature(markers,
{toggle:true});<br>
        markers.events.on({ "featureselected": onMarkerSelect,
"featureunselected": onMarkerUnselect, "visibilitychanged":
onMarkerToggle });<br>
        map.addControl(select);<br>
        select.activate();<br>
<br>
//.........<br>
// onSubmit: - layer is the layer variable, options are the options
packed as a JSON/javascript object. Call refreshLayer like:
refreshLayer(markers, options);<br>
<br>
function refreshLayer(layer, options){<br>
<br>
    if(options == null){<br>
        layer.refresh({force: true});<br>
    }<br>
    else{ <br>
        if(layer.CLASS_NAME == "OpenLayers.Layer.Vector"){<br>
            layer.protocol.options.params = options; //override the
parameters sent to kml_alarms.pl<br>
            layer.refresh({force: true});<br>
        }<br>
    }<br>
}<br>
</tt><br>
If you're using KML format, make sure your serverside script outputs
content-type application/vnd.google-earth.kml+xml. Something similar
should exist for GML.<br>
From this code you're missing a function to pack the search form into
the "options" object. The object should look like: <br>
options[name] = value;<br>
options[name2] = value2;<br>
<br>
<br>
Good luck!<br>
Adrian.<br>
<br>
P.S. If you intent your application to run for hours and to
automatically refresh your POIs, you should consider doing a full page
reload from time to time so that IE won't eat all available memory...<br>
<br>
<br>
Nick Kendall wrote:
<blockquote cite="mid:05EC2644-0297-4807-BE5E-16974E51172F@gmail.com"
 type="cite">
  <div>Adrian, I'd love some code examples. I was toting with the idea
of a gml writing php function that re-writes a gml file on the server,
and reloading the pages on submit, thus changing the static resource
but your way sounds more elegant<br>
  <br>
Nicholas Efremov-Kendall 
  <div>(917) 399-6939</div>
  <div>Sent from my mobile device</div>
  </div>
  <div><br>
On Aug 3, 2009, at 9:50 AM, Adrian Popa &lt;<a moz-do-not-send="true"
 href="mailto:adrian_gh.popa@romtelecom.ro">adrian_gh.popa@romtelecom.ro</a>&gt;
wrote:<br>
  <br>
  </div>
  <blockquote type="cite">
    <div>Hello,<br>
    <br>
I had a similar task - of showing dynamic POIs and I chose to implement
it like this:<br>
- a Vector layer with KML data. <br>
- the path to the KML file is actually a path to a serverside script
wich generates KMLs.<br>
- on searchbox submit a javascript creates new parameters for the
serverside script<br>
- I force a layer refresh<br>
    <br>
It works great - but it tends to crash Internet Explorer after a while
- because IE keeps deleted markers in memory (silly behaviour). You can
get around this by refreshing the whole page, but it's nasty.<br>
    <br>
Let me know if you need some code examples.<br>
Regards,<br>
Adrian<br>
    <br>
Nicholas Efremov-Kendall wrote:
    <blockquote
 cite="mid:33fd44f90908010812t42aa058m82116ee16dc69f62@mail.gmail.com"
 type="cite">
      <div>Hi all,<br>
      </div>
      <div><br>
      </div>
      <div>I'm still trying to make a dynamic POI, or marker, or points
layer, whatever you want to call it, that changes the points in the map
in response to user's searches. I can't use mapserver or a
pre-programmed server-side option, so I'm forced to write my own gml or
wkt. I'm still not quite sure how to get this GML to OL and then
replace it by the next search.</div>
      <div><br>
      </div>
      <div>I think there are two options. One of which would be to send
data to a markers layer and have JS write the markers out. The other
would be to have php re-write the gml file on the server and
theoretically, this should create a new set of points each time the
search is submitted. Not sure what the best/easiest option would be
with respect to coding (either on the browser or server-side) or from a
performance perspective. Does anyone have any recommendations? I'm
basically copying a php/mysql kml tutorial and adapting it to GML (for
largely ideological reasons). I've just re-read the GML documentation,
and it states that the GML is meant to only be loaded once, so should I
be focusing on a dynamic marker layer or what?</div>
      <div><br>
      </div>
      <div>In effect, all I really want is a simple ajax function to
load
the POI/markers that correspond to search criteria, such that every
search produces a unique (within a limited span of variation of
course). The maps centering won't really change, just the make up of
the sites displayed in the map. I can write the gml server side, and I
can send the request, but I'm not sure what to do with the call-back or
how to feed that info to OL.�</div>
      <div><br>
      </div>
      <div>Thank you in advance for any advice/help.</div>
      <div>(incidentally, I'd be willing to consider contracting
someone to
do this)</div>
      <div><br>
      </div>
      <div>best,</div>
      <div>Nick</div>
      <pre wrap=""><hr size="4" width="90%">
_______________________________________________
Users mailing list
<a moz-do-not-send="true" href="mailto:Users@openlayers.org">Users@openlayers.org</a>
<a moz-do-not-send="true"
 href="http://openlayers.org/mailman/listinfo/users">http://openlayers.org/mailman/listinfo/users</a>
  </pre>
    </blockquote>
    <br>
    <br>
    </div>
  </blockquote>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">-- 
--- 
Adrian Popa
NOC Division
Network Engineer
Divizia Centrul National de Operare Retea
Departament Transport IP &amp; Metro
Compartiment IP Core &amp; Backbone
Phone: +40 21 400 3099
</pre>
</body>
</html>