2012-02-16 2 views
9

Tôi muốn tìm nạp tên quốc gia của người dùng Twitter.Cách tìm tên Quốc gia từ tên thành phố trong Java?

Để nhận được vị trí từ thẻ <location> trong đó một số người dùng viết tên quốc gia của họ, một số đã viết tên thành phố của họ và một số cũng viết tên tiểu bang của họ.

Tôi muốn lấy tên quốc gia cho tất cả người dùng. Tôi có thể làm cái này như thế nào?

Trả lời

10

Một cách là sử dụng API Google Maps (mặc dù nó có thể là quá mức cần thiết). Ví dụ: giả sử ai đó đã liệt kê quốc gia của họ là "Jakarta" (thực sự là một thành phố ở Indonesia). Sau đó, bạn sẽ gửi yêu cầu API Maps sau:

http://maps.googleapis.com/maps/api/geocode/json?address=Jakarta&sensor=false

mà trả về một đối tượng JSON. Sau đó, bạn phân tích cú pháp đó với trình phân tích cú pháp JSON yêu thích của mình và trích xuất trường "long_name" của trường "thành phần địa chỉ", với loại "quốc gia". Trong trường hợp này, đó là "Indonesia".

+0

Cảm ơn rất nhiều chris. –

+0

Tôi đã nhận nó .. :) :) :) :) :) –

+3

Có thể đây là điều hiển nhiên, nhưng bạn nên giữ danh sách tên quốc gia được công nhận (và lỗi chính tả phổ biến) để bạn chỉ thực hiện yêu cầu API Maps khi bạn không nhận ra đất nước. –

4

Bạn có thể sử dụng tập lệnh tự động hoàn thành của Google Maps để nhận các quốc gia có thể có cho thành phố. Nó hoạt động như thế này: Khi bạn gõ "New York", nó cho bạn thấy "New York, USA". Nhưng hãy nhớ rằng, bạn không thể lúc nào cũng lấy tên quốc gia từ tên thành phố: Có một Berlin ở Đức và ở Connecticut nữa.

+1

+1, đặc biệt. cho Berlin ở Đức và Connecticut. – Ghost

+1

Cảm ơn bạn đã trả lời. –

5

Cố gắng tìm một tệp tài nguyên hoặc cơ sở dữ liệu với giấy phép thuận tiện (như GeoWorldMap from here). Bạn sẽ không nhận được thông tin chính xác từ người dùng twitter anyway, và những gì họ viết trong hồ sơ của họ có thể là đồng bằng sai. Vì vậy, tôi muốn sử dụng một tài nguyên tĩnh và giải mã càng nhiều vị trí càng tốt.

+1

Cảm ơn bạn đã trả lời. :) –