小碼哥

          誰謂河廣,一葦杭之

             :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            7 隨筆 :: 17 文章 :: 74 評論 :: 0 Trackbacks

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          訂閱Canvas

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          最近一段時間里,又做了一個跟openlayers相關(guān)的項(xiàng)目,但是到目前為止,我對openlayers還是不怎么了解,做東西也只是參考了openlayers的例子,以及自己的一些對openlayers用法的一些猜測。openlayers是一個用js實(shí)現(xiàn)的GIS前端框架,我的js目前還是打醬油的水平,要是沒有jquery,那就基本寫不了幾行js代碼了。js那是相當(dāng)?shù)膹?qiáng)大,再加上VML\SVG、HTML5以及很多js rich框架等等,感覺js在瀏覽器端真是無所不能啊

          目前這個項(xiàng)目主要功能就是在某城市的地圖上標(biāo)示電纜、光纜、井蓋、光纜接頭、線桿、建筑物形狀和位置、各分級單位的位置以及快速定位等等,要求的功能很簡單,而且有前段時間做學(xué)校電子地圖的一些積累,所以大概在兩周左右就做完了這個項(xiàng)目。

          感覺openlayers的資料很少,自己也沒有太多的時間和精力去讀它的源碼,目前我都是通過看openlayers自帶的那些example和api文檔來摸索的,下面簡單總結(jié)一下openlayers的相關(guān)用法,歡迎大家拍磚。
          (以下均以O(shè)penLayers-2.9.1為例說明,完整的項(xiàng)目代碼在這里下載,地圖圖片http://121.193.130.68/list/

          1、我只用到了openlayers里面的tilecache接口,其它的例如WMS,google map等等都沒有用到。原因是這樣的。tilecache接口是用來從tilecache服務(wù)器上請求圖片的。通過觀察google map或者一些其它的地圖服務(wù),發(fā)現(xiàn)他們都是使用256x256像素大小的圖片(也就是tile)來拼接地圖的,通常的做法是在gis服務(wù)器之間架設(shè)一個tilecache服務(wù)器,這樣,gis生成的圖片就可以緩存在tilecahe服務(wù)器上,而tilecache服務(wù)器僅僅提供簡單http服務(wù)即可,如果請求的圖片(tile)不在tilecache服務(wù)器上,那么tilecache服務(wù)器會想gis服務(wù)器請求,把把gis生成的圖片緩存在tilecache服務(wù)器上。
          通過觀察tilecache服務(wù)器的目錄結(jié)構(gòu),發(fā)現(xiàn)緩存圖片按照這樣的模具結(jié)構(gòu)存放:{縮放級別}/{橫坐標(biāo)}/{縱坐標(biāo)}.{圖片格式后綴名},注意這個坐標(biāo)系的原點(diǎn)在屏幕的左下角。觀察到這個規(guī)律以后,就可以直接把一張大的地圖按照256x256的大小切割,并按照上述的目錄結(jié)構(gòu)存放,值得注意的是,每個縮放級別要一定滿足2^n的規(guī)律,即第一級整個地圖大小若為1,那么第二級整個地圖大小應(yīng)為2,第三級應(yīng)為4,依次類推。這里需要簡單修改一下openlayers的tilecache接口代碼,文件位于OpenLayers-2.9.1\lib\OpenLayers\Layer\TileCache.js,修改如下:
           1 var components = [
           2             this.layername,
           3             zeroPad(tileZ, 2),
           4             //zeroPad(parseInt(tileX / 1000000), 3),
           5             //zeroPad((parseInt(tileX / 1000) % 1000), 3),
           6             zeroPad((parseInt(tileX) % 1000), 3),
           7             //zeroPad(parseInt(tileY / 1000000), 3),
           8             //zeroPad((parseInt(tileY / 1000) % 1000), 3),
           9             zeroPad((parseInt(tileY) % 1000), 3+ '.' + this.extension
          10         ];
          同樣,由于只使用tilecache,所以openlayers里面其它的代碼也可刪除,以減小openlayers的代碼量,最后通過自帶的python寫的工具,壓縮openlayers代碼即可。

          2.地圖初次加載的時候,向服務(wù)器請求所有數(shù)據(jù)信息,并在地圖上繪出相應(yīng)的點(diǎn)線面。如何畫出建筑的輪廓?用透明的就行了。
          a.顯示點(diǎn)信息,包括畫點(diǎn)、用圖標(biāo)顯示點(diǎn),代碼如下。
           1 /*
           2  *    在地圖上畫出所有的點(diǎn)并保存點(diǎn)的相關(guān)信息到字典中
           3  */
           4 function initFeaturePoint(vectorLayer,categoryId){
           5     //get point json
           6     point_data = getFeatureData('point',categoryId);
           7     var target_info = [];        
           8     // create a point feature
           9     for(index in point_data){
          10         single_point = point_data[index].point.split(" ");
          11         pointX = single_point[0];
          12         pointY = single_point[1];
          13         
          14         //畫點(diǎn)
          15         var point = new OpenLayers.Geometry.Point(Number(pointX), Number(pointY));
          16         
          17         
          18         var style_point = {
          19                 strokeColor: point_data[index].strokeColor,
          20                 strokeWidth: 2,
          21                 strokeDashstyle: "solid",
          22                 pointRadius: 6,
          23                 strokeOpacity: 0.8,
          24                 fillOpacity: 0.8,
          25                 //label:point_data[index].title,
          26                 fontSize:'12px',
          27                 fontFamily:'宋體',
          28                 labelXOffset:0,
          29                 labelYOffset:-15,
          30                 labelAlign:'m',
          31                 fillColor: point_data[index].strokeColor
          32         };
          33         
          34         //顯示標(biāo)記文字,把文字放在底下一層,這樣上面的就不會選不上了
          35         var pointText = new OpenLayers.Geometry.Point(Number(pointX), Number(pointY));
          36         showPointTextTips(pointText, point_data[index].title);
          37         
          38         pointFeature = new OpenLayers.Feature.Vector(point, null, style_point);
          39         vectorLayer.addFeatures([pointFeature]);
          40             
          41         /*收集點(diǎn)的信息*/
          42         id = point_data[index].id;
          43         titles = point_data[index].title;
          44         description = point_data[index].description;
          45         strokeColor = point_data[index].strokeColor;
          46         iconUrl = point_data[index].iconUrl;
          47         iconUrl2 = point_data[index].iconUrl2;
          48         array_index = pointFeature.id;
          49         target_info[array_index] = {"id":id,"title":titles,"description":description,"strokeColor":strokeColor,"iconUrl":iconUrl,"iconUrl2":iconUrl2,"pointX":pointX,"pointY":pointY};
          50         //alert(target_info[array_index]);
          51     }
          52     return target_info;
          53 }

           1 /*
           2  *    在地圖上畫出所有的點(diǎn)并保存點(diǎn)的相關(guān)信息到字典中
           3  */
           4 function initFeatureImagePoint(vectorLayer,categoryId,imageUrl){
           5     //get point json
           6     point_data = getFeatureData('point',categoryId);
           7     var target_info = [];        
           8     // create a point feature
           9     for(index in point_data){
          10         single_point = point_data[index].point.split(" ");
          11         pointX = single_point[0];
          12         pointY = single_point[1];
          13         
          14         //畫點(diǎn)
          15         var point = new OpenLayers.Geometry.Point(Number(pointX), Number(pointY));
          16         
          17         
          18         var style_point = {
          19                 graphicWidth : 32,
          20                 graphicHeight: 32,
          21                 externalGraphic:imageUrl,
          22                 graphicTitle:point_data[index].title
          23         };
          24         
          25         
          26         pointFeature = new OpenLayers.Feature.Vector(point, null, style_point);
          27         vectorLayer.addFeatures([pointFeature]);
          28         
          29         /*收集點(diǎn)的信息*/
          30         id = point_data[index].id;
          31         titles = point_data[index].title;
          32         description = point_data[index].description;
          33         strokeColor = point_data[index].strokeColor;
          34         iconUrl = point_data[index].iconUrl;
          35         iconUrl2 = point_data[index].iconUrl2;
          36         array_index = pointFeature.id;
          37         target_info[array_index] = {"id":id,"title":titles,"description":description,"strokeColor":strokeColor,"iconUrl":iconUrl,"iconUrl2":iconUrl2,"pointX":pointX,"pointY":pointY};
          38         //alert(target_info[array_index]);
          39     }
          40     return target_info;
          41 }

          b.畫線
           1 /**
           2     在地圖上畫出所有的線并保存點(diǎn)的相關(guān)信息到字典中
           3 */
           4 function initFeatureLine(vectorLayer,categoryId)
           5 {
           6          
           7     linestring_data = getFeatureData('line',categoryId);
           8     var target_info = []; 
           9     // create all line features from a list of points
          10        for(index in linestring_data){
          11            var pointList = [];
          12            linestring_points = linestring_data[index].point.split(",");
          13            for(inner_index in linestring_points){
          14                single_point = linestring_points[inner_index].split(" ");
          15                pointX = single_point[0];
          16             pointY = single_point[1];
          17             newPoint = new OpenLayers.Geometry.Point(Number(pointX), Number(pointY));
          18                pointList.push(newPoint);
          19            }
          20            var linestring =  new OpenLayers.Geometry.LineString(pointList);
          21            var style_line = {
          22                 strokeColor: linestring_data[index].strokeColor,
          23                 strokeOpacity: 0.8,
          24                 strokeWidth: linestring_data[index].strokeWidth,
          25                 pointRadius: 20,
          26                 //label:linestring_data[index].title,
          27                 fontSize:'12px',
          28                 fontFamily:'宋體',
          29                 labelXOffset:30,
          30                 labelYOffset:10,
          31                 labelAlign:'rm'
          32          };
          33            lineFeature = new OpenLayers.Feature.Vector(linestring,null,style_line);
          34         vectorLayer.addFeatures([lineFeature]);
          35         
          36         //顯示標(biāo)記文字
          37         single_point = linestring_points[0].split(" ");
          38         pointX = single_point[0];
          39         pointY = single_point[1];
          40         var pointText = new OpenLayers.Geometry.Point(Number(pointX), Number(pointY));
          41         showPointTextTips(pointText, linestring_data[index].title);
          42         
          43         /*收集路的信息*/
          44         id = linestring_data[index].id;
          45         titles = linestring_data[index].title;
          46         linelength = linestring_data[index].linelength;
          47         description = linestring_data[index].description;
          48         strokeColor = linestring_data[index].strokeColor;
          49         strokeWidth = linestring_data[index].strokeWidth;
          50         iconUrl = linestring_data[index].iconUrl;
          51         iconUrl2 = linestring_data[index].iconUrl2;
          52         array_index = linestring.id;
          53         target_info[array_index] = {"id":id,"title":titles,"linelength":linelength,"description":description,"strokeColor":strokeColor,"strokeWidth":strokeWidth,"iconUrl":iconUrl,"iconUrl2":iconUrl2};
          54        }
          55        return target_info;       
          56 }

          c.畫面
           1 /**
           2 在地圖上畫出所有的多邊形區(qū)域路并保存點(diǎn)的相關(guān)信息到字典中
           3 */
           4 function initFeaturePolygon(vectorLayer,categoryId)
           5 {
           6     polygon_data = getFeatureData('polygon',categoryId);
           7     var target_info = []; 
           8     for(index in polygon_data){
           9         var pointList = [];
          10         polygon_points = polygon_data[index].point.split(",");
          11         for(inner_index in polygon_points){
          12             single_point = polygon_points[inner_index].split(" ");
          13             pointX = single_point[0];
          14             pointY = single_point[1];
          15             newPoint = new OpenLayers.Geometry.Point(Number(pointX), Number(pointY));
          16                pointList.push(newPoint);
          17         }
          18         var linearRing = new OpenLayers.Geometry.LinearRing(pointList);
          19         var polygon = new OpenLayers.Geometry.Polygon([linearRing]);
          20         var style_polygon = {
          21                 strokeColor: polygon_data[index].strokeColor,
          22                 strokeWidth: 2,
          23                 strokeOpacity: 0.8,
          24                 fillOpacity: 0.8,
          25                 //label:polygon_data[index].title,
          26                 fontSize:'12px',
          27                 fontFamily:'宋體',
          28                 labelXOffset:0,
          29                 labelYOffset:-15,
          30                 labelAlign:'m',
          31                 fillColor: polygon_data[index].strokeColor
          32         };
          33         polygonFeature = new OpenLayers.Feature.Vector(polygon,null,style_polygon);
          34         vectorLayer.addFeatures([polygonFeature]); 
          35         
          36         
          37         //顯示標(biāo)記文字
          38         single_point = polygon_points[0].split(" ");
          39         pointX = single_point[0];
          40         pointY = single_point[1];
          41         var pointText = new OpenLayers.Geometry.Point(Number(pointX), Number(pointY));
          42         showPointTextTips(pointText, polygon_data[index].title);
          43         
          44         /*收集圖形的信息*/
          45         id = polygon_data[index].id;
          46         titles = polygon_data[index].title;
          47         description = polygon_data[index].description;
          48         type_id = polygon_data[index].type_id;
          49         strokeColor = polygon_data[index].strokeColor;
          50         iconUrl = polygon_data[index].iconUrl;
          51         iconUrl2 = polygon_data[index].iconUrl2;
          52         array_index = polygon.id;
          53         //alert(array_index);
          54         target_info[array_index] = {"id":id,"title":titles,"description":description,"type_id":type_id,"strokeColor":strokeColor,"iconUrl":iconUrl,"iconUrl2":iconUrl2};      
          55     }
          56     return target_info;  
          57 }

          d.復(fù)制一條線
           1 /**
           2  * 
           3  * 復(fù)制線到某一層
           4  * @param desvectors
           5  * @param linestring
           6  * @return
           7  */
           8 function cloneLine(vectorLayer,linestring)
           9 {
          10     linestring_points = linestring.substring("LINESTRING".length + 1,linestring.length - 1);
          11     //alert(linestring_points);
          12     var pointList = [];
          13     line_points = linestring_points.split(",");
          14     for(inner_index in line_points){
          15         single_point = line_points[inner_index].split(" ");
          16         pointX = single_point[0];
          17         pointY = single_point[1];
          18         newPoint = new OpenLayers.Geometry.Point(Number(pointX)+0.2, Number(pointY)+0.2);
          19            pointList.push(newPoint);
          20     }
          21     var linestringtmp =  new OpenLayers.Geometry.LineString(pointList);
          22        var style_line = {
          23                 strokeColor: "red",
          24                 strokeOpacity: 1,
          25                 strokeWidth: 6,
          26                 pointRadius: 20
          27     };
          28        //var tmpVector = vectorLayer == 'lightlinelayer' ? lightlinelayer : linelayer;
          29        var tmpVector;
          30        if(vectorLayer == 'lightlinelayer')
          31            tmpVector = lightlinelayer;
          32        else if(vectorLayer == 'linelayer')
          33            tmpVector = linelayer;
          34        else
          35            tmpVector = policelightlinelayer;
          36        
          37        lineFeature = new OpenLayers.Feature.Vector(linestringtmp,null,style_line);
          38        tmpVector.addFeatures([lineFeature]);
          39 }

          e.計(jì)算一條線的長度
           1 /*計(jì)算線的長度*/
           2 function getLengthOfALine(linestring)
           3 {
           4     //alert(linestring);
           5     linestring_points = linestring.substring("LINESTRING".length + 1,linestring.length - 1);
           6     //alert(linestring_points);
           7     var pointList = [];
           8     line_points = linestring_points.split(",");
           9     lineLength = 0;
          10     for(inner_index in line_points){
          11         if(inner_index > 0)
          12         {
          13             single_point = line_points[inner_index].split(" ");
          14             pointX = Number(single_point[0]);
          15             pointY = Number(single_point[1]);
          16                
          17             old_single_point = line_points[inner_index - 1].split(" ");
          18             old_pointX = Number(old_single_point[0]);
          19             old_pointY = Number(old_single_point[1]);
          20             
          21             lineLength = lineLength + Math.sqrt((pointX - old_pointX) * (pointX - old_pointX) + (pointY - old_pointY) * (pointY - old_pointY));
          22         }
          23     }
          24     return lineLength.toFixed(4);
          25 }

          f.刪除一個地圖元素
           1 function deleteFeature(featureId)
           2 {
           3     
           4     if(!confirm("您確定要刪除這個地圖標(biāo)記嗎?"))
           5         return;
           6     var feature = null;
           7     //alert(lightlinelayer.getFeatureById(featureId));
           8     feature = lightlinelayer.getFeatureById(featureId);
           9     //alert(feature);
          10     if(feature != null)
          11     {
          12         if(lineDataList[feature.geometry.id])
          13         {
          14             deleteFeatureByIdAndType(lineDataList[feature.geometry.id].id,'line');
          15         }
          16         map.removePopup(feature.popup);
          17         feature.popup.destroy();
          18         feature.popup = null;
          19         lightlinelayer.destroyFeatures([feature]);
          20         return;
          21     }

          地圖圖片是從google map下載的。
          posted on 2010-10-11 20:42 小碼哥 閱讀(9390) 評論(32)  編輯  收藏 所屬分類: Java語言學(xué)習(xí)HTMLpythonjquery

          評論

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2010-11-02 08:33
          博主,能給個聯(lián)系用的QQ嗎?最近也在搞E校園,想向您請教一下啊!  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2010-11-02 15:13 Barrie
          @江
          382060923  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼)[未登錄] 2011-04-25 23:44 lee
          首先十分樓主,不過樓主能把地圖數(shù)據(jù)發(fā)上來嗎???  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2011-05-11 22:15 Barrie
          @lee
          地圖數(shù)據(jù)太大了,發(fā)不上來,你如果有需要,可以留下郵箱,我給你發(fā)過去  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼)[未登錄] 2011-05-25 16:39 jie
          樓主,能否發(fā)份代碼,QQ:460117429.謝謝~  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2011-05-26 15:59 Barrie
          @jie
          http://www.aygfsteel.com/Files/canvas/map.zip  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼)[未登錄] 2011-07-21 17:08 jie
          3Q@Barrie
            回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼)[未登錄] 2011-10-20 14:17 zeng
          麻煩給份地圖,謝謝樓主:263941783@qq.com  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼)[未登錄] 2011-11-11 23:37 siwei
          你好,請發(fā)我一份地圖。
          448385620@qq.com
          謝謝!  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2012-02-24 11:13 Mr許
          @Barrie
          樓主可以把地圖數(shù)據(jù)發(fā)給我一份嗎,十分感謝: xuweilin15353@163.com  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2012-03-21 10:23 xiaolin
          由于剛接觸這塊,樓主能介紹下開發(fā)環(huán)境怎么搭建嗎?  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2012-03-21 14:53 Barrie
          @xiaolin
          注意openlayers的目錄結(jié)構(gòu),直接使用就可以了  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2012-03-21 17:05 xiaolin
          新建一個基于asp.net的網(wǎng)站項(xiàng)目,下載好Openlayers包之后,把Openlayers.js,img文件夾,theme文件夾復(fù)制到同一個目錄,然后通過<script src="openlayers/OpenLayers.js"></script>調(diào)用,請問樓主java環(huán)境下怎么引用的?  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2012-04-15 21:03 vernon.zheng
          小碼哥,請發(fā)我一份地圖數(shù)據(jù)。
          511596982@qq.com
          萬分謝謝啊!!!  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2012-04-20 15:35 da
          樓主,請發(fā)我一份地圖數(shù)據(jù)。
          1395579668@qq.com
          萬分謝謝啊!!!  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2012-05-08 22:03 Chery
          感謝樓主分享!
          麻煩您給我發(fā)下 地圖數(shù)據(jù)包,謝謝!!
          cheryyoo@foxmail.com  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2012-08-03 14:44 zlbwonder
          求達(dá)人給我發(fā)份地圖數(shù)據(jù) zlbwonder@163.com 謝謝  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2012-08-04 22:10 gj
          求發(fā)我一份512528719@qq.com  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2012-09-20 10:08 孫星
          您好,能指導(dǎo)下嗎,在三維地圖上,鼠標(biāo)滑過建筑時出現(xiàn)黃色邊框線高亮顯示,這個功能怎樣實(shí)現(xiàn)啊 我現(xiàn)在對地圖理解還是不行,很模糊 能再提供一些源碼嗎 謝謝  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2012-09-23 21:47 Barrie
          這個效果自帶的examples里面有  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼)[未登錄] 2012-10-08 13:37 k
          受益匪淺,求博主發(fā)我一份。465023102@qq.com  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2012-11-13 09:08 小碼哥
          @k
          服務(wù)器掛掉了,地圖數(shù)據(jù)沒了,不過可以自行下載google地圖  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2012-12-26 16:26 IT女工
          @Barrie
          沒有吧,,這怎么用啊,,,哎,,蒙了  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2012-12-28 12:31 小碼哥
          http://www.aygfsteel.com/Files/canvas/map.zip  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2013-01-09 15:32 zhouwei
          樓主,能發(fā)我一份地圖數(shù)據(jù)嗎?
          563192700@qq.com
            回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2013-01-10 11:13 小碼哥
          @zhouwei

          不好意思。已經(jīng)沒有地圖數(shù)據(jù)了。可以自己從google地圖下載嘛  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2013-05-23 16:50 amoning
          下載以后是什么樣子的?怎么集成到系統(tǒng)中?
          我下了放到webroot下面,然后修改鏈接,沒有。求幫助  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2013-06-04 09:03 小碼哥
          @amoning
          需要自己準(zhǔn)備好地圖  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼)[未登錄] 2014-11-10 12:34 hao
          @Barrie我需要  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼) 2014-12-31 14:02 趙龍歸
          showPointTextTips這個方法 的代碼在哪呢?我想了解一下,能貼一下么  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼)[未登錄] 2015-03-19 21:25 小李
          給我也發(fā)份,謝謝!!416912113@qq.com  回復(fù)  更多評論
            

          # re: openlayers小結(jié)(有參考項(xiàng)目代碼)[未登錄] 2015-03-19 21:26 小李
          我也要份,謝謝! 416912113@qq.com
            回復(fù)  更多評論
            

          主站蜘蛛池模板: 台北市| 永胜县| 永昌县| 海原县| 马鞍山市| 台东县| 论坛| 偏关县| 门头沟区| 泰兴市| 磐安县| 亳州市| 公主岭市| 长治市| 荃湾区| 涟源市| 洛阳市| 白山市| 大庆市| 简阳市| 高安市| 太保市| 安陆市| 吉林省| 射洪县| 永清县| 高唐县| 阿瓦提县| 临颍县| 城口县| 华宁县| 临西县| 望江县| 阿瓦提县| 洛浦县| 拉孜县| 普定县| 云安县| 靖江市| 唐海县| 武山县|