2015-07-26 16 views
7

Sử dụng API của Google Maps v3, làm cách nào để mã hóa địa lý tên thành phố và có bản đồ được trả về cùng với đường viền của kết quả? thường đây là một thực thể chính trị có ranh giới nghiêm ngặt, như thành phố, đô thị, v.v.Phương thức API nào cung cấp bản vẽ ranh giới của thành phố?

Nên sử dụng API method nào?

+1

Không có API nào (hiện tại) cung cấp dữ liệu đó. – geocodezip

+5

Xin chào các nhà cung cấp dịch vụ và nhà cung cấp! ** API bên ngoài hoàn toàn đúng chủ đề **. Nếu bạn gặp vấn đề với cấu trúc của câu hỏi, hãy cho chúng tôi biết trong phần bình luận! Nếu một API hiện không tồn tại cho một đối tượng địa lý, thì đó vẫn là câu trả lời hợp lệ. Khi điều đó thay đổi tại Google, thì câu hỏi này có thể được cập nhật bằng câu trả lời mới giải thích cách sử dụng API mới đó. –

+1

Tôi cũng đang tìm kiếm một API – Daniel

Trả lời

1

Tôi nghĩ rằng bạn sẽ cần Tiger/Line files như tham chiếu trong answer này. Bạn có thể sử dụng dữ liệu để generate polygons. Sử dụng Geocoder.geocode để tìm kiếm tên thành phố. Đây là một chức năng dựa trên lời hứa mà tôi sử dụng:

function locateAddress(address) { 
    var deferred = $q.defer(); 
    if(!address) { $q.resolve(null); return; } 

    var geocoder = new google.maps.Geocoder(); 

    var a = address; 
    if(_.isObject(a)) { 
     a = (a.line1 || '') + ' ' + (a.city || '') + ' ' + (a.state || '') + ' ' + (a.zip || ''); 
    } 

    geocoder.geocode({ 'address' : a}, function(results, status) { 
     if(status === 'ZERO_RESULTS') { 
     deferred.resolve(null); 
     return; 
     } 

     var c = results[0].geometry.location; 
     deferred.resolve({latitude: c.lat(), longitude: c.lng()}); 
    }, function(err) { 
     deferred.reject(err); 
    }); 

    return deferred.promise; 
    } 
Các vấn đề liên quan