将标记从国家名称放入国家
Put marker into country from country name
我有一个 google 地图搜索字段。输入转到 google 位置 API,我得到一个结果并缩放到该位置的边界。
如果用户搜索像 Norway
这样的国家/地区,地图将缩放并居中,如下所示:
https://www.google.de/maps/place/Norwegen/@64.5783089,17.888237,5z/data=!3m1!4b1!4m2!3m1!1s0x461268458f4de5bf:0xa1b03b9db864d02b
但我需要在中心放置一个标记,以便用户看到他的搜索将他带到了哪里。在挪威示例中,这将导致标记被放置在屏幕中间,但在挪威之外。
是否可以将标记放入一个国家/地区?
编辑
json如果我搜索挪威:
{
"address_components": [
{
"long_name": "Norway",
"short_name": "NO",
"types": [
"country",
"political"
]
}
],
"adr_address": "<span class=\"country-name\">Norway</span>",
"formatted_address": "Norway",
"geometry": {
"location": {
"k": 60.47202399999999,
"D": 8.46894599999996
},
"viewport": {
"Ea": {
"k": 57.9711417,
"j": 71.1854762
},
"wa": {
"j": 4.626684800000021,
"k": 31.149789199999987
}
}
},
"icon": "http://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
"id": "c94d4f99cf5b1f973f837eb189e0cfff6b91fab0",
"name": "Norway",
"place_id": "ChIJv-VNj0VoEkYRK9BkuJ07sKE",
"reference": "CnRpAAAANAQEnqw1T_JMzZwRKpmAX1Yz7vZ83m1zIb20hhZVPnSrTHQN1nELF5mq73UIhsU5HpsvQV3KZWyIaEBu-WoCI0R10koCHxf3zV6FsWeS0d_GsY-rK9a6i4z0MKBSZVNTywLbZBKDIuoiZEIldqmMjxIQ94Ks-CUSOr9ciS0K8TLnmRoUTp5kU7pNMCjEfDZGde6GvYtDLGU",
"scope": "GOOGLE",
"types": [
"country",
"political"
],
"url": "https://maps.google.com/maps/place?q=Norway&ftid=0x461268458f4de5bf:0xa1b03b9db864d02b",
"html_attributions": []
}
google 将其识别为一个国家,视口用于边界,但 geometry.location
在瑞典。
这将使您能够正确放置标记。例如:
var marker = new google.maps.Marker({
map: map,
title: place.name,
position: place.geometry.location
});
这是我前段时间创建的示例 fiddle:
places-result 的几何图形包含 2 个属性,viewport
(我想这就是您用来缩放到边界的东西)和 location
-属性。这个location-属性通常是国家内部的一个点(当你搜索一个国家时),你可以用它来绘制标记。
我有一个 google 地图搜索字段。输入转到 google 位置 API,我得到一个结果并缩放到该位置的边界。
如果用户搜索像 Norway
这样的国家/地区,地图将缩放并居中,如下所示:
https://www.google.de/maps/place/Norwegen/@64.5783089,17.888237,5z/data=!3m1!4b1!4m2!3m1!1s0x461268458f4de5bf:0xa1b03b9db864d02b
但我需要在中心放置一个标记,以便用户看到他的搜索将他带到了哪里。在挪威示例中,这将导致标记被放置在屏幕中间,但在挪威之外。
是否可以将标记放入一个国家/地区?
编辑
json如果我搜索挪威:
{
"address_components": [
{
"long_name": "Norway",
"short_name": "NO",
"types": [
"country",
"political"
]
}
],
"adr_address": "<span class=\"country-name\">Norway</span>",
"formatted_address": "Norway",
"geometry": {
"location": {
"k": 60.47202399999999,
"D": 8.46894599999996
},
"viewport": {
"Ea": {
"k": 57.9711417,
"j": 71.1854762
},
"wa": {
"j": 4.626684800000021,
"k": 31.149789199999987
}
}
},
"icon": "http://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
"id": "c94d4f99cf5b1f973f837eb189e0cfff6b91fab0",
"name": "Norway",
"place_id": "ChIJv-VNj0VoEkYRK9BkuJ07sKE",
"reference": "CnRpAAAANAQEnqw1T_JMzZwRKpmAX1Yz7vZ83m1zIb20hhZVPnSrTHQN1nELF5mq73UIhsU5HpsvQV3KZWyIaEBu-WoCI0R10koCHxf3zV6FsWeS0d_GsY-rK9a6i4z0MKBSZVNTywLbZBKDIuoiZEIldqmMjxIQ94Ks-CUSOr9ciS0K8TLnmRoUTp5kU7pNMCjEfDZGde6GvYtDLGU",
"scope": "GOOGLE",
"types": [
"country",
"political"
],
"url": "https://maps.google.com/maps/place?q=Norway&ftid=0x461268458f4de5bf:0xa1b03b9db864d02b",
"html_attributions": []
}
google 将其识别为一个国家,视口用于边界,但 geometry.location
在瑞典。
这将使您能够正确放置标记。例如:
var marker = new google.maps.Marker({
map: map,
title: place.name,
position: place.geometry.location
});
这是我前段时间创建的示例 fiddle:
places-result 的几何图形包含 2 个属性,viewport
(我想这就是您用来缩放到边界的东西)和 location
-属性。这个location-属性通常是国家内部的一个点(当你搜索一个国家时),你可以用它来绘制标记。