75才からのモバイルアプリ作成

MIT App Inventorを使ったアプリ作成

MIT App Inventorであのアプリを作ってみる (KanooPizza 2)

2024-06-13 08:19:01 | 日記

前回、郵便番号を入力すると、その地域に対する丁目の候補が表示され、選択できるようにしたいと書いたが、解決方法は意外と簡単に見つかった。

全国の市区町村に存在する丁目を提供してくれるAPIがあった。

Geolonia blogというサイト

以下は東京都世田谷区の丁目を検索した結果の冒頭部分。他の都道府県の市区町村も検索してみたら、データが取得できた。

今回は、とりあえず、東京都世田谷区に絞ってアプリを作成している。もし、全国のピザ販売店の位置情報などが取得できるのであれば、世田谷区に限ることはないが。。。無理な相談!また、そんな膨大なデータを作ることは不可能。

[
   {
      "town":"赤堤一丁目",
      "koaza":"",
      "lat":35.655245,
      "lng":139.641523
   },
   {
      "town":"赤堤二丁目",
      "koaza":"",
      "lat":35.658003,
      "lng":139.645777
   },
   ......

]

アプリ実行のビデオ:

(まだテスト段階なので、Test用Labelはそのままにしてある)

スクリーンのデザイン:

特にデザインに変更はなし。

ブロックのコード:

丁目候補表示部分のみ。

関数callChomeを実行し、所定のURLに対しGETリクエストを行う。

そして、データが取得できたら(responseCodeでのチェックが抜けているが)、必要なデータの抽出に移る。

市区町村の丁目データから、街の名前、例えば、「桜」が「town」の値として含まれていれば、「桜一丁目」「桜二丁目」・・・を取り出しリストにして表示すればよいと考えた。

しかし、世田谷区に限定して作成しているものの、世田谷区には、「桜」が付く地域が「桜」以外に「桜丘」「桜上水」「桜新町」3つあったのでこのような考え方が通じなかった。そこで、「桜一丁目」と「桜丘一丁目」「桜上水一丁目」「桜新町一丁目」のグループを区別し、目的のデータのみを抽出する方法として、

      => 街の文字数が1つであり、(「桜」は一文字。一文字の街は、世田谷区でも他に「砧」などがある)

      => 丁目を含んだ文字数が4文字であり、(「桜一丁目」これはちょっと強引かもしれない。十一丁目があったらどうする?対応不可。いずれにしても「桜一丁目」「砧一丁目」などが抽出される)

      => 丁目を含んだ街の中に「桜」が含まれているならOK(「桜一丁目」〜「桜三丁目」までを抽出成功)

という条件とした。世田谷区の場合はうまくいったが、他の地域ではダメだろう。もう少しユニバーサルに適用できるロジックを考える必要があるだろう。今回は、これで次に進む。

リストができれば、chomeListPickerに表示。

選択された丁目をchomeLableに表示し、次へのボタン( >> )も表示。

                                ************************************************************

因みに、全国の市区町村に存在する丁目のAPIから世田谷区に限定して取得したデータ(JSON)の桜が含まれている部分は以下。(抜粋)

[

......

   {

      "town":"桜一丁目",
      "koaza":"",
      "lat":35.645526,
      "lng":139.641136
   },
   {
      "town":"桜二丁目",
      "koaza":"",
      "lat":35.643813,
      "lng":139.637878
   },
   {
      "town":"桜三丁目",
      "koaza":"",
      "lat":35.640435,
      "lng":139.637264
   },
   .......
   {
      "town":"桜丘一丁目",
      "koaza":"",
      "lat":35.642736,
      "lng":139.632385
   },
   ......
   {
      "town":"桜新町一丁目",
      "koaza":"",
      "lat":35.628891,
      "lng":139.642972
   },

   .....
   {
      "town":"桜上水一丁目",
      "koaza":"",
      "lat":35.658089,
      "lng":139.631515
   },
   ......

.......

]

                           ******************************************************

前回までのブログ:

MIT App Inventorであのアプリを作ってみる (KanooPizza 1)

 



コメントを投稿