2012-10-17 124 views
0
  1. 嗨,拉斐爾積點

    我有一個歐洲拉斐爾map.Now我想就在map.i 某些城市通過轉換緯度經度ň到 試圖繪製積點但不幸的是它正在繪製其他的地方 。它就像我們應該有世界地圖來繪製點 - 這裏是我的 的代碼。

    腳本類型= 「文本/ JavaScript的」 字符集= 「UTF-8」>

     $(document).ready(function() { 
         var rsr = Raphael('map', '631', '686'); 
         var attr = { 
            fill: "#C0C0C0", 
            stroke: "#666", 
            "stroke-width": 1, 
            "stroke-linejoin": "round" 
           }; 
          var world = {}; 
          world.Portugal = rsr.path("56,0.133-1.32,0.527c-0.661,1.321-0.264,2.906- 0.925,4.228c-0.528,1.057-3.698,5.415-3.434,6.868c0.132,0.526,1.056-0.529,1.584-0.529c0.792-0.132,1.585,0.133,2.377,0c0.396,0,0.792-0.396,1.188-0.264 
    

    c2.113,0.527,8.981,5.019,9.906,4.887c0.396,0,4.49-1.981, 4.754-2.113 C57.876,621.536,58.537,621.536,59.197,621.536 L59.197,621.536 Z「)。attr(attr); world.Spain = rsr.path(」M194.57,552.728c0.924,0.396,1.981,0.63。 434,4.754c-,0,0.792,0 c0.661,0.133,1.453,0.133,1.849,0.528c0.66,0.528,0.264,1.717,0.924,2.113v0.132C190.74,552.066,190.476,553.916,194.57,552.728 L194.57,552.728z「)。attr(attr);

    var current = null; 
          for(var country in world) { 
          (function (st, country) { 
           country = country.toLowerCase(); 
           st[0].style.cursor = "pointer"; 
           st[0].onmouseover = function() { 
            st.animate({fill:"#808080", stroke: "#ccc"}, 500); 
           }; 
           st[0].onmouseout = function() { 
            st.animate({fill: "#C0C0C0", stroke: "#666"}, 500); 
            st.toFront(); 
            R.safari(); 
           }; 
           st[0].onclick = function() { 
           st.toFront(); 
             st.animate({ 
             fill: '#808080', 
             transform: 's1.5 ' 
            }, 1000); 
           }; 
          })(world[country], country); 
          } 
         }); 
        var cities = {};//here i define the cities with lat n long but both draws in thesame point all time 
         cities.rome = plot(55.70466,13.19101,1); 
         cities.copenhagen = plot(55.676097,12.568337,1); 
         var city_attr = { 
           fill:"#FF7F50", 
           stroke:"#666", 
           opacity: .3 
          }; 
         function plot(lat,lon,size) { 
          size = size * .5 + 4; 
          return rsr.circle(lon2x(lon),lat2y(lat),size).attr(city_attr); 
          } 
    
         function lon2x(lon) { 
          var xfactor = 1.5255; 
          var xoffset = 263.58; 
          var x = (lon * xfactor) + xoffset; 
          return x;   }   function lat2y(lat) { 
          var yfactor = -1.5255; 
           var yoffset = 130.5; 
           var y = (lat * yfactor) + yoffset; 
           return y;   } 
        }); 
         var myMarker = rsr.ellipse(513.859,35.333, 7, 7).attr({ 
          stroke: "none", 
          opacity: .7, 
          fill: "#f00" 
         }); 
    
+0

請注意格式,代碼搞砸了。我也懷疑[raphael]標籤是相關的,因爲您正在討論的座標映射並不是Raphael.js特有的。 – Qnan

回答

0

地圖編碼的座標看起來相當隨意。如果是這樣,沒有[簡單]方法自動確定映射。我建議在常規地圖上以自己的座標系和相應的經緯度座標系中的邊界框來繪製矢量圖的邊界框,並從中導出映射,至少作爲第一個近似值。