Điều gì tiếp theo nếu KML của chúng tôi quá lớn / phức tạp đối với API Google Maps? [đóng cửa]


29

Ứng dụng web của chúng tôi bao gồm các khả năng lập bản đồ đơn giản (hiện chỉ là các điểm đánh dấu và lớp phủ KML trên Google Map được nhúng). Điều này hoạt động khá tốt; giới hạn thực sự duy nhất mà chúng tôi gặp phải là các lớp phủ KML vượt xa các giới hạn về độ phức tạp và kích thước của Google đối với KML .

Chúng tôi đang xem xét đứng lên máy chủ của riêng mình (ví dụ: GeoServer hoặc ArcGIS Server); nhưng đó dường như là một bước tiến lớn chỉ để phục vụ (ví dụ) 15 MB KML khi giới hạn của Google là 10 MB.

Tôi cần kiểm tra độ tỉnh táo: Có một số điểm trung gian giữa API miễn phí và dễ dàng của Google cho các lớp phủ KML và thiết lập máy chủ lát của riêng tôi không?


5
chia một KML của bạn thành 2 tệp KML nhỏ hơn - bật và tắt dữ liệu tùy chọn mà bạn không yêu cầu.
Mapperz

1
bảng tùy chọn sử dụng phản ứng tổng hợp (giới hạn 100k hàng hoặc 100MB trong dữ liệu) - gmaps-samples.googlecode.com/svn/trunk/fusiontables/... thấy groups.google.com/group/fusion-tables-users-group/browse_thread/...
Mapperz

@mapperz Bạn chỉ có thể tải lên 100MB dữ liệu cùng một lúc, nhưng sau đó bạn có thể nhập các hàng tiếp theo vào cùng một bảng lên tới 250 MB dung lượng lưu trữ.
geographika

Mặc dù tôi thấy bạn đã biết điều đó rồi .. gis.stackexchange.com/questions/6615/NH
geographika

Dịch vụ Fusion Table sẽ ngừng hoạt động vào ngày 3 tháng 12 năm 2019, vì vậy tùy chọn tôi thấy là làm cho các tệp kml nhỏ hơn bằng phần mềm - máy tính để bàn QGIS. Ngoài ra còn có thư viện python pygis. Tôi đã sử dụng máy tính để bàn QGIS với tùy chọn hình học Đơn giản hóa bằng 0,0005. Sau đó, tôi xuất lớp được tạo ra là kml. Bạn có thể làm điều này như một công việc hàng loạt cũng từ cùng một menu. Sau đó, bạn có thể mở tất cả các lớp đã tạo trong dự án riêng biệt và sử dụng Bảng điều khiển bên trong máy tính để bàn của QGIS để chuyển đổi tất cả các tệp .shp thành .kml
makkasi

Câu trả lời:


12

Vì bạn đã đầu tư vào phát triển Google Maps, tôi rất khuyên bạn nên đẩy tất cả dữ liệu vào Google Fusion Table, sau đó có thể được phân tích cú pháp trên bản đồ theo cách tương tự như KML với hiệu suất đáng kinh ngạc (xem ứng dụng WNYC Fusion Bảng ). Hãy coi đó là một bản nâng cấp lên KML mà không cần phải sửa đổi mạnh mẽ phần đầu.


Tôi nghĩ rằng đây là một ý tưởng tuyệt vời nếu dữ liệu của bạn không có trong lịch cập nhật> 24 giờ. Đây là những gì google vừa nói với chúng tôi (nếu kml làm chậm trình duyệt sử dụng bảng tổng hợp) để làm như vậy tôi sẽ nói đây là câu trả lời tốt nhất.
Steve

1
Cảm ơn bạn đã chỉ ra Fusion Table - bằng cách nào đó, điều này đã hoàn toàn thoát khỏi sự chú ý của tôi, rất tuyệt. Thật không may, điều này sẽ hơi vụng về khi làm việc với dữ liệu thay đổi thường xuyên; và giới hạn lưu trữ tổng thể (250MB cho mỗi người dùng) sẽ không cho phép chúng tôi mở rộng quy mô.
Herb Caudill

2
Lưu ý rằng dịch vụ Fusion Table thử nghiệm sẽ ngừng hoạt động vào ngày 3 tháng 12 năm 2019.
Jonas

12

Bạn có thể chia nhỏ KML của mình thành nhiều KML với KML gốc tham chiếu các km nhỏ hơn. Ít nhất điều này sẽ đưa kích thước tệp của bạn xuống mức đáng nể và cho phép bạn tham chiếu các bộ dữ liệu lớn hơn nhiều như KML.

Thành thật mà nói KML chỉ thực sự tốt cho các bộ dữ liệu nhỏ với một vài tính năng và thuộc tính liên quan. Tôi sẽ không đến gần nó như một nguồn dữ liệu tập tin. Nếu bạn đang xem các tệp này ngày càng lớn hơn, tôi sẽ xem một loại dữ liệu khác hoặc chắc chắn đi xuống tuyến GeoServer / MapServer cho các bộ dữ liệu phân tán.


2
Nhưng Network KML (với Superoverlays được thiết kế cho các bộ dữ liệu lớn) nhưng yêu cầu máy chủ web và phần mềm kết xuất Geoserver hoạt động tốt với loại KMZ này - hoạt động tốt nhất với Google Earth vì API Google Maps đã hạn chế sử dụng KML.
Mapperz

Tôi chưa bao giờ gặp nhiều may mắn với các siêu lớp, ngoại trừ với Google Earth Enterprise Client. Mặc dù tôi đã không dành nhiều thời gian cho việc này. Chắc chắn là một tùy chọn để khám phá, +1 @Mapperz
OptimizePrime

1
Sử dụng GeoServer với Oracle và hoạt động rất tốt khi hiển thị KMZ (superoverlay) - dữ liệu trực tiếp (được cập nhật liên tục) rất hữu ích cho người dùng - phải điều chỉnh máy chủ địa lý để tăng tốc độ làm mới.
Mapperz

8

Nếu bạn chưa đầu tư quá nhiều thời gian vào API Google Maps, bạn có thể chuyển sang OpenLayers có trình phân tích cú pháp KML phía máy khách có thể đọc các tệp KML của riêng bạn - xem ví dụ bên dưới:

http://openlayers.org/dev/examples/kml-layer.html

Tuy nhiên, đối với tệp 15 MB, điều này có thể sẽ khiến trình duyệt tạm dừng. Có lẽ nó cũng khá chậm thông qua các máy chủ của Google khi bạn đến gần giới hạn kích thước tệp.

Có thực sự cần mức độ chi tiết 15 MB hay bạn có thể đơn giản hóa KML mà không mất quá nhiều thông tin?

Bạn có cần truy cập vào vector / hình học ở phía máy khách không? Dữ liệu này có thể được phục vụ như hình ảnh?

Nếu cả hai điều này đều không thể, bạn sẽ phải xem một số loại phần mềm phục vụ bản đồ. Cùng với GeoServer của ArcGIS Server, bạn có thể xem xét MapServer để phân phát KML hoặc dưới dạng WFS. Lợi ích của việc sử dụng máy chủ bản đồ là các yêu cầu sẽ chỉ trả về dữ liệu trong bản đồ - giảm lưu lượng mạng và giảm thời gian tải.


Sau khi dùng thử các bảng Google Fusion, cách tiếp cận của Guddie là cách dễ thực hiện nhất. Bạn chỉ có thể tải lên 100 MB KML tại một thời điểm, nhưng mỗi người dùng có tùy chọn lưu trữ 250 MB (tại thời điểm viết).
geographika

2

Nếu bạn đang sử dụng phiên bản 3, bạn có thể loại bỏ tất cả thông tin thuộc tính ngoại trừ một mã định danh duy nhất và yêu cầu thông tin qua các cuộc gọi ajax đến dịch vụ web mỗi khi người dùng nhấp vào một tính năng. Nếu bạn có số điểm trị giá trên 10 MB, có lẽ nên thực hiện một số loại phân cụm thay vì hiển thị tất cả các điểm đó cùng một lúc. Ngoài ra, bạn có thể tách lớp phủ mặt đất của mình thành các tệp KML riêng biệt.



2

MapLarge có một giải pháp thú vị - họ có thể sao chép dữ liệu của bạn trên máy chủ của họ và sau đó thực hiện các thao tác tạo khối rất nhanh bằng phần mềm độc quyền của họ. Họ cung cấp API Javascript sau đó có thể phủ chúng trên các bản đồ cơ sở từ Google Maps, OpenLayers, v.v.

Kiểm tra một số ví dụ của họ - tốc độ rất ấn tượng:

Nó không miễn phí, nhưng nó có thể là một lựa chọn tốt cho những người không muốn gặp rắc rối và chi phí khi đứng lên một máy chủ riêng biệt để tạo các lớp này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.