2015-02-18 14 views
23

Tôi đang cố gắng tạo bản đồ, sử dụng sơ đồ tầng mà tôi đã lưu trữ trong mongodb. Nếu tôi đặt JSON vào một tệp, tôi có thể gọi nó bằng cách sử dụng map.data.loadGeoJson('myfile.json')Đang tải đối tượng geoJSON trực tiếp vào google maps v3

Tuy nhiên, tôi không muốn lưu tệp mỗi khi tôi tạo bản đồ và tôi muốn viết trực tiếp đối tượng. Một cái gì đó như thế này:

var tempObject = { 
    "type": "FeatureCollection", 
    "features": [ 
     { 
     "type": "Feature", 
     "properties": { 
      "letter": "G", 
      "color": "blue", 
      "rank": "7", 
      "ascii": "71" 
     }, 
     "geometry": { 
      "type": "Polygon", 
      "coordinates": [ 
      [ 
       [123.61, -22.14], [122.38, -21.73], [121.06, -21.69], [119.66, -22.22], [119.00, -23.40], 
       [118.65, -24.76], [118.43, -26.07], [118.78, -27.56], [119.22, -28.57], [120.23, -29.49], 
       [121.77, -29.87], [123.57, -29.64], [124.45, -29.03], [124.71, -27.95], [124.80, -26.70], 
       [124.80, -25.60], [123.61, -25.64], [122.56, -25.64], [121.72, -25.72], [121.81, -26.62], 
       [121.86, -26.98], [122.60, -26.90], [123.57, -27.05], [123.57, -27.68], [123.35, -28.18], 
       [122.51, -28.38], [121.77, -28.26], [121.02, -27.91], [120.49, -27.21], [120.14, -26.50], 
       [120.10, -25.64], [120.27, -24.52], [120.67, -23.68], [121.72, -23.32], [122.43, -23.48], 
       [123.04, -24.04], [124.54, -24.28], [124.58, -23.20], [123.61, -22.14] 
      ] 
      ] 
     } 
     } 
    ] 
    }; 


    map.data.loadGeoJson(tempObject); 

Làm điều đó không hiệu quả. Có cách nào khác để tải mọi thứ từ một đối tượng duy nhất hay tôi cần lưu chúng vào một tệp/tạo đa giác riêng lẻ bằng cách sử dụng google.maps.Polygon()?

Trả lời

42

Sử dụng phương pháp addGeoJson của data thay vì loadGeoJson. loadGeoJson hy vọng một URL là thông số, không phải là đối tượng tính năng phân biệt GeoJSON.

map.data.addGeoJson(tempObject); 

Kiểm tra các tài liệu tham khảo: https://developers.google.com/maps/documentation/javascript/reference#Data

+2

tôi cảm thấy cả hai câm cho thiếu mà trong các tài liệu, và biết ơn đối với bạn chỉ ra rằng. Cảm ơn! – Itinerati

+0

Tương tự ở đây! Tôi cũng không nhận ra điều đó trong tài liệu. – TGuimond

Các vấn đề liên quan