【问题标题】:Put marker into country from country name将标记从国家名称放入国家
【发布时间】:2015-01-08 13:48:59
【问题描述】:

我有一个谷歌地图搜索字段。输入进入 google places 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 在瑞典。

【问题讨论】:

标签: javascript google-maps google-maps-api-3 google-places-api


【解决方案1】:

places-result 的几何图形包含 2 个属性,viewport(我猜这就是你用来缩放到边界的东西)和 location-property。这个位置属性通常是国家内部的一个点(当你搜索一个国家时),你可以用它来绘制标记。

【讨论】:

【解决方案2】:

看看PlaceGeometry object。

这将允许您正确放置标记。例如:

var marker = new google.maps.Marker({
    map: map,
    title: place.name,
    position: place.geometry.location
});

这是我前段时间创建的一个示例小提琴:

JSFiddle demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多