openlayers javascript库和xhtml定期移动标记

openlayers javascript库和xhtml定期移动标记,javascript,jsf,jakarta-ee,Javascript,Jsf,Jakarta Ee,我正在尝试创建一个geloalization web应用程序,所以在查看了不同的工具之后,我发现openlayers javascript库对我完成这个项目非常有用。 但当我开始使用它时,我会遇到很多问题: 所以我想知道是否有人能帮我修改代码或给我另一种方法来完成这项任务 我已经实现了这个xhtml页面,用它来显示在地图上周期性移动的标记,但是我可以得到目标结果 <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html

我正在尝试创建一个geloalization web应用程序,所以在查看了不同的工具之后,我发现openlayers javascript库对我完成这个项目非常有用。 但当我开始使用它时,我会遇到很多问题: 所以我想知道是否有人能帮我修改代码或给我另一种方法来完成这项任务

我已经实现了这个xhtml页面,用它来显示在地图上周期性移动的标记,但是我可以得到目标结果

 <?xml version='1.0' encoding='UTF-8' ?>
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<head>
<title>OpenLayers Demo</title>
<style type="text/css">
html,body,#basicMap {
width: 80%;
height: 80%;
margin: 0;
 }
 </style>
 <script src="OpenLayers.js"></script>
 <script>
var mapnik;
var lat= 32;
var lon=10 ;
var zoom=5;
var map; 
var marker;
var lonLat;
var fromProjection;
var toProjection;  
  function init() {
    map = new OpenLayers.Map("basicMap");
     mapnik   = new OpenLayers.Layer.OSM();
     fromProjection = new OpenLayers.Projection("EPSG:4326");   // Transform from WGS 1984
     toProjection   = new OpenLayers.Projection("EPSG:900913"); // to Spherical Mercator Projection
    lonLat = new OpenLayers.LonLat(lon,lat).transform( fromProjection, toProjection);
    map.addLayer(mapnik);
    map.setCenter(lonLat,zoom );
    layerMarkers = new OpenLayers.Layer.Markers("Markers");
    map.addLayer(layerMarkers);
    var size = new OpenLayers.Size(30,40);
    var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
    var icon = new OpenLayers.Icon('icon/jeep.png',size,offset);
    marker =new OpenLayers.Marker(lonLat,icon);
    layerMarkers.addMarker(marker);
    window.setInterval("setMarker()",100);
  }
  function setMarker(){
  lon=lon+0.1;
  lat=lat+0.1;
  var lonLat = new OpenLayers.LonLat(lon, lat).transform(new     OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
  var newPx = map.getLayerPxFromViewPortPx(map.getPixelFromLonLat(new     OpenLayers.LonLat(lon, lat).transform(map.displayProjection, map.projection)));
  marker.moveTo(newPx);
   }
  </script>
</head>
<body >
<div id="basicMap"></div>
<script type="text/javascript">init();</script>
</body>
  </html> 

OpenLayers演示
html,body,#basicMap{
宽度:80%;
身高:80%;
保证金:0;
}
var mapnik;
var-lat=32;
var-lon=10;
var=5;
var映射;
var标记;
var lonLat;
var来自投影;
var-TopProjection;
函数init(){
map=新的OpenLayers.map(“basicMap”);
mapnik=newopenlayers.Layer.OSM();
fromProjection=newOpenLayers.Projection(“EPSG:4326”);//从WGS 1984转换
TopProjection=新OpenLayers.Projection(“EPSG:900913”);//到球形墨卡托投影
lonLat=新的OpenLayers.lonLat(lon,lat).转换(fromProjection,toProjection);
map.addLayer(mapnik);
地图设置中心(lonLat,zoom);
layerMarkers=新的OpenLayers.Layer.Markers(“Markers”);
地图。添加图层(图层标记);
var size=新的OpenLayers.size(30,40);
var偏移=新的OpenLayers.Pixel(-(大小为w/2),-size.h);
var icon=new OpenLayers.icon('icon/jeep.png',大小,偏移量);
marker=新的OpenLayers.marker(lonLat,图标);
图层标记器。添加标记器(标记器);
setInterval(“setMarker()”,100);
}
函数setMarker(){
lon=lon+0.1;
lat=lat+0.1;
var lonLat=new OpenLayers.lonLat(lon,lat).transform(new OpenLayers.Projection(“EPSG:4326”),map.getProjectionObject();
var newPx=map.getLayerPxFromViewPortPx(map.getPixelFromLonLat(new OpenLayers.LonLat(lon,lat).transform(map.displayProjection,map.projection));
marker.moveTo(newPx);
}
init();

我想我发错帖子了嘿,笨蛋,有人知道吗??